(适用于ReactiveCocoa
4 或 3)
在我见过的大多数示例和案例中,将用户界面连接到数据中所涉及的ReactiveCocoa
对象至少在构造函数中调用的某个或类似方法中MutableProperty<TVal, TErr>
实例化。SignalProducer<TVal, TErr>
setupBindings
我经历过几种情况,当我将对象的声明从范围移动到存储属性时,我的非工作代码突然“正常工作”,反之亦然。例如,在伪代码中:
class Wtf {
// doesn't work
init() {
let prop = MutableProperty<Dah, Dah>()...
doSomethingWith(prop)
}
// also doesn't work
private let prop: MutableProperty<Dah, Dah> = MutableProperty<Dah, Dah>(Dah())
init() {
doSomethingWith(prop)
}
// works?
private let prop: MutableProperty<Dah, Dah>
init() {
prop = MutableProperty<Dah, Dah>(Dah())
doSomethingWith(prop)
}
}
因此,似乎有一些基本问题。
给定一些ReactiveCocoa
对象...
- 我什么时候应该将它声明为属性(
let
或var
)与本地实例变量? - 我什么时候应该将它实例化为存储的、计算的或其他属性与实例的变体
- 什么时候应该是一个函数
return
?