0

考虑以下示例:

给定一组 observables:

let value1 = Observable(false)
let value2 = Observable(false)
let value3 = Observable(false)

let isSaveButtonEnabled = Observable(false)

每次发生变化时,我都想执行此代码:

func validate() {
{...}
isSaveButtonEnabled.value = true
}

目前,配置这种关系的唯一方法是为每个 Observable 单独添加一个闭包:

value1.onNext {
self.validate()
}

value2.onNext {
self.validate()
}

....

目标:

我想使用与此类似的语法对其进行编程:

[value1, value2, value.....].onAnyChange {
self.validate()
}
4

1 回答 1

0

我想出了一些东西:

private func configureValidationLogic() {
    [vaule1.eraseType(), 
     vaule2.eraseType(),
    vaule3.eraseType(),
    vaule4.eraseType(),
    vaule5.eraseType()].forEach { (signal) in
        signal.observeNext { [weak self] in
            guard let self = self else {return}
            self.validate()
        }
    }
}

也许,有更好的(内置到库中)方法来实现相同的目标。

于 2019-06-25T17:02:41.787 回答