我想简单地“组合”多个文本字段发出的信号并触发一段代码。似乎有几种方法“应该”使用诸如SignalProducer 初始化程序之类combineLatest()
的方法来工作。values:
但我无法按预期编译或运行任何东西。
RAC 文档使用以下示例
combineLatest(numbersSignal, lettersSignal)
|> observe(next: println, completed: { println("Completed") })
但我无法编译这种用法
我可以使用冗余块执行以下操作...
locationTextfield.rac_textSignal().toSignalProducer()
|> start(next: { txt in
println(txt)
})
aircraftTextfield.rac_textSignal().toSignalProducer()
|> start(next: { txt in
println(txt)
})
我也不明白为什么我需要使用toSignalProducer()
和启动而不是仅仅观察它rac_textsignal
本身。这会“编译”,但除非创建并启动生产者,否则似乎不会在信号上发送任何内容。
这个问题/答案ReactiveCocoa 将 SignalProducers 组合成一个也可以,但似乎仍然是一种解决方法,并且没有解释为什么需要创建信号生产者而不是观察原始rac_textSignal()
s