gpt4 book ai didi

swift - 如何在 Swift ReactiveCocoa 4 中从 MutableProperty 创建 MutableProperty

转载 作者:行者123 更新时间:2023-11-30 12:41:57 26 4
gpt4 key购买 nike

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

最佳答案

你不能创建MutableProperty<U>直接来自MutableProperty<T>但你可以做一个 MutableProperty<U>初始值getStatusB(from: classA.statusA.value)然后将其绑定(bind)到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 的实例方法,因为您需要能够在调用 self.init 之前调用它)

关于swift - 如何在 Swift ReactiveCocoa 4 中从 MutableProperty<U> 创建 MutableProperty<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com