绑定(bind)运算符 (<~) 采用 BindingSource
参数,Signal
和 SignalProducer
均符合协议(protocol)
我希望绑定(bind)到生产者的 UI 元素不会“接收事件”,直到生产者以某种方式启动,但情况似乎并非如此
即
let text = MutableProperty("abc")
myLabel1.reactive.text <~ text.signal
myLabel2.reactive.text <~ text.producer
text.value = "def"
导致两个标签更新。
这是有意的行为还是我误解了什么?
最佳答案
这是预期的行为。您可以看到in the implementation of <~
那start
被显式调用(并且生产者的处置与绑定(bind)目标的生命周期相关)。
[编辑]
澄清一下,按照您想象的方式将生产者本身绑定(bind)到标签没有多大意义。如果 start
会发生什么被多次调用以产生多个信号?标签是否会从第一个信号、最近的信号或合并在一起的所有信号中获取值?没有直观的方法可以实现这一点。
关于reactive-cocoa - react 性 cocoa : Difference between binding to a Signal or a SignalProducer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44165814/