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()
}