我有2个布尔用Didset方法。在两个didset内部,它调用了相同的方法。所以我想在那两个bool设置了名为
的集合之后调用一个方法var canDo: Bool {
didSet {
reload()
}
}
var isView: Bool {
didSet {
reload()
}
}
答案 0 :(得分:2)
var canDo: Bool {
didSet {
if isView{
reload()
}
}
}
var isView: Bool {
didSet {
if canDo{
reload()
}
}
}
答案 1 :(得分:0)
我们可以在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()
}
}
}
答案 2 :(得分:0)
我建议使用一个新函数来处理何时调用reload()
的逻辑,而不要在两个didSet
中都包含逻辑。这样,如果需要添加新逻辑,则可以将其添加到一个位置:
var canDo: Bool {
didSet { maybeReload() }
}
var isView: Bool {
didSet { maybeReload() }
}
private func maybeReload() {
guard
canDo,
isView
else { return }
reload()
}