我有 2 个带有 didset 方法的布尔值。在两个 didset 内部,它调用了相同的方法。所以我想在调用了 2 个 bool 集合之后调用一个方法
var canDo: Bool {
didSet {
reload()
}
}
var isView: Bool {
didSet {
reload()
}
}
我有 2 个带有 didset 方法的布尔值。在两个 didset 内部,它调用了相同的方法。所以我想在调用了 2 个 bool 集合之后调用一个方法
var canDo: Bool {
didSet {
reload()
}
}
var isView: Bool {
didSet {
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()
}
我们可以借助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()
}
}
}