【发布时间】:2017-11-22 06:19:02
【问题描述】:
我需要var isOn: Variable<Bool>,它是从其他 2 个变量计算而来的。如何订阅其他变量的值更改,同时还能从我的isOn 变量中读取最新值?
以下是使用Observable 和Variable 类型的2 个变量的错误解决方案。但我正在寻找正确的解决方案,基本上是将我的isOn 和isOnVariable 合并为一个。
let from = Variable<Date?>(nil)
let to = Variable<Date?>(nil)
let isOnVariable = Variable<Bool>(false)
var isOn: Observable<Bool> {
return Observable.combineLatest(from.asObservable(), to.asObservable()) { [weak self] to, from in
switch (from, to) {
case (.none, .none):
self?.isOnVariable.value = false
return false
default:
self?.isOnVariable.value = true
return true
}
}
}
【问题讨论】: