有没有简单的方法可以在Swift ReactiveCocoa 4中从MutableProperty创建MutableProperty?
我有一个案例,我想要一种用classA创建classB的方法,其中我需要用statusA设置statusB,但是如何做到这一点?
class ClassA {
var statusA = MutableProperty<T>
}
class ClassB {
var statusB = MutableProperty<U>
func getStatusB(from StatusA: T) -> U {
// .. assume this is implemented.
}
init(statusB: U) {
//...
}
convenience init(from classA: ClassA) {
self.statusB = // here how to setup this value from classA's statusA with getStatusB(from:)?
}
}
答案 0 :(得分:0)
您无法直接从MutableProperty<U>
制作MutableProperty<T>
,但您可以制作初始值为MutableProperty<U>
的{{1}},然后将其绑定到getStatusB(from: classA.statusA.value)
因此classA.statusA.signal.map(getStatusB)
的所有更改都会传播到MutableProperty<T>
,例如
MutableProperty<U>
(但为了编译,convenience init(from classA: ClassA) {
self.init(getStatusB(from: classA.statusA.value)))
self.statusB <~ classA.statusA.signal.map(getStatusB)
}
不能是getStatusB
的实例方法,因为您需要能够在调用ClassB
之前调用它。