如何从Swift ReactiveCocoa 4中的MutableProperty <u>创建MutableProperty <t>

时间:2017-02-09 02:23:20

标签: swift reactive-cocoa-4

有没有简单的方法可以在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:)?
    }
}

1 个答案:

答案 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之前调用它。