Swift 在 2 bool didset 调用后调用方法
Swift call a method after 2 bool didset call
我有 2 个 bool 和 didset 方法。在两个 didset 中,它调用了相同的方法。所以我想在 2 bool 做了一组叫做
之后调用一个方法
var canDo: Bool {
didSet {
reload()
}
}
var isView: Bool {
didSet {
reload()
}
}
我们可以在 Optionals
的帮助下实现这一目标
现在更新您的代码时
var canDo: Bool? {
didSet {
if isView != nil {
reload()
}
}
}
var isView: Bool? {
didSet {
if canDo != nil {
reload()
}
}
}
编辑
如果您的意思是设置为 true
则只需忽略上面的内容并添加
var canDo: Bool {
didSet {
if isView {
reload()
}
}
}
var isView: Bool {
didSet {
if canDo {
reload()
}
}
}
var canDo: Bool {
didSet {
if isView{
reload()
}
}
}
var isView: Bool {
didSet {
if canDo{
reload()
}
}
}
我建议使用一个新函数来处理何时调用 reload()
的逻辑,而不是在两个 didSet
中都有逻辑。这样如果需要添加新的逻辑,可以在一个地方添加:
var canDo: Bool {
didSet { maybeReload() }
}
var isView: Bool {
didSet { maybeReload() }
}
private func maybeReload() {
guard
canDo,
isView
else { return }
reload()
}
我有 2 个 bool 和 didset 方法。在两个 didset 中,它调用了相同的方法。所以我想在 2 bool 做了一组叫做
之后调用一个方法var canDo: Bool {
didSet {
reload()
}
}
var isView: Bool {
didSet {
reload()
}
}
我们可以在 Optionals
现在更新您的代码时
var canDo: Bool? {
didSet {
if isView != nil {
reload()
}
}
}
var isView: Bool? {
didSet {
if canDo != nil {
reload()
}
}
}
编辑
如果您的意思是设置为 true
则只需忽略上面的内容并添加
var canDo: Bool {
didSet {
if isView {
reload()
}
}
}
var isView: Bool {
didSet {
if canDo {
reload()
}
}
}
var canDo: Bool {
didSet {
if isView{
reload()
}
}
}
var isView: Bool {
didSet {
if canDo{
reload()
}
}
}
我建议使用一个新函数来处理何时调用 reload()
的逻辑,而不是在两个 didSet
中都有逻辑。这样如果需要添加新的逻辑,可以在一个地方添加:
var canDo: Bool {
didSet { maybeReload() }
}
var isView: Bool {
didSet { maybeReload() }
}
private func maybeReload() {
guard
canDo,
isView
else { return }
reload()
}