textField委托和在ReactiveCocoa中使用textSignal有什么区别?

时间:2016-10-08 19:54:20

标签: ios swift functional-programming delegates reactive-cocoa

我想知道,使用textField委托textDidChange

之间有什么区别
nameTextField.rac_textSignal().subscribeNext { (input) -> Void in 
        print(input) 
} 

?谁能帮我理解差异呢?

2 个答案:

答案 0 :(得分:0)

我问自己同样的问题,我认为这两种模式之间没有太大的变化。

如果您有多个与代理相同类型的出口,并且您希望将其用于至少两个,则必须区分它们,以便您可以在委托方法中添加条件。由于您直接对出口物体采取行动,因此反应并非如此。

如果您已经为其他行为实施了反应库,或者您只是想通过此模式提高您的技能,则可以使用被动反应。否则,我不建议使用,它只会增加你的应用程序大小。

PS:这只是我个人的看法,我并不熟悉被动反应,但这对我来说似乎是正确的。

答案 1 :(得分:0)

信号多播,将块作为观察者,并且不需要具体类型来符合委托。您也可以使用运算符组合信号,比如take(until: trigger)来限制信号的生命周期。

毕竟,这些框架是声明性和表达性的,可以帮助您维护应用程序架构并更好地推理代码。