[转]RAC 知识点汇总 总结得非常全
一:关于ReactiveCocoa的知识点
1:RACSigner基础知识点
| 
 | 
常见的操作方法:
| 
 | 
2:RACSubject基础知识点
| RACSubject:信号提供者,自己可以充当信号,又能发送信号 使用场景:通常用来代替代理,有了它,就不必要定义代理了 | 
3:RACSequence基础知识点
| 
 | 
4:RACCommand基础知识点
| 
 | 
5:RACMulticastConnection基础知识点
| 
 | 
6:RAC结合UI一般事件
| 
 | 
7:高阶操作知识内容
8:RAC并发编程知识点
| 
 | 
9:冷信号跟热信号知识点
| 
 | 
10:RACDisposable知识点
| 
 | 
11:RACChannel知识点
| RACChannelTerminal *channelA = RACChannelTo(self, valueA); | 
12:RAC倒计时小实例
| //倒计时的效果 | 
13:常见的宏定义运用
| 
 | 
二:关于使用ReactiveCocoa结合MVVM模式的实例;
MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点
- 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。 
- 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。 
- 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。 
- 可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。 
三:单元测试知识
单元测试这边主要采用两种方式,一种是XCode自动的XCTestCase进行,如下面这些就是它所对应的断言等,另外一种是采有KIWI的插件进行测试;项目中有针对viewController、viewModel、帮助类等的测试实例;运用快捷键(command+U)可以运行单元测试实例;
| 
 | 
采用KiWi的单元测试效果:
| 
 | 
关于kiwi中的操作类型可以直接查看:https://github.com/allending/Kiwi/wiki/Expectations
注意:发现在进行单元测试时,针对RAC就会报[RACStream(Operations) reduceEach:]_block_invoke,后来发现是Pod引入写法有问题,导致的【it usually means RAC is being linked twice. Make sure it’s only in your app target.】 所以测试的MobileProjectTests特别要注意;
| 
 | 
四:ReactiveCocoa知识分享地址
| 
 | 
