常用作用:
注意:reactiveCocoa 提供了很多对象创建信号的方式,整个流程是一样的,只是各个对象创建信号的方式不一样。
过程:创建信号-----存储信号为冷信号([subscriber sendNext:@""])-------订阅信号(subscribeNext:^(idx) {})激活冷信号,相当于调用信号。
特殊情况:RACCommand对象命令可以存储信号,同一个对象可以在任何地方订阅执行存储的信号(execute),进而进行一系列的操作。一般不再同一个类中调用信号都用命令来处理。
常用快捷方法:
rac_signalForSelector:用于替代代理
rac_valuesAndChangesForKeyPath:用于监听某个对象的属性改变(KVO)
rac_signalForControlEvents:用于监听某个事件
rac_addObserverForName:用于监听某个通知
rac_textSignal:只要文本框发出改变就会发出这个信号
rac_liftSelector:withSignalsFromArray:Signals:处理当界面有多次请求时,需要都获取到数据时,才能展示界面。当传入的Signals(信号数组),每一个signal都至少sendNext过一次,就会去触发第一个selector参数的方法:
代码演示:
//www.greatytc.com/p/87ef6720a096 页面搜索:代码演示
信号创建和订阅传递:
三种方式:RACSignal、RACSubject、RACReplaySubject
基础功能:
1.RACSubject替换代理:
需求:// 1.给当前控制器添加一个按钮,modal到另一个控制器界面// 2.另一个控制器view中有个按钮,点击按钮,通知当前控制器
RACTuple:元组类、RACSequence:RAC中的集合类
需求:1.遍历数组 2.遍历字典,遍历出来的键值对会包装成RACTuple(元组对象) // 3.字典转模型