遇到的坑 (摘自 https://www.cnblogs.com/manji/p/4846591.html)
独自学习RAC还是有一定的难度的,毕竟面对众多RAC的api要想完全理解下来还是挺困难的。
而且刚开始不熟悉的情况下很难针对某些特定的场景,想出比较合理的RAC处理方式(这句话是盗用
别人的,但是我也深有体会)。这里列一下我写这个demo时遇到的几个坑吧,希望能帮别人绕过这些
坑,也算是功德一件。
1、ViewModel里用来保存数据的数组,不能使用NSMutableArray。原因是RAC是基于KVO的,
而NSMutableArray的Add和Remove方法并不会给KVO发送通知,因此对NSMutableArray进行
RACObserve时,并不会达到我们想要的结果。(同理其他Mutable的也都不能用)
2、ViewModel里给items赋值时,不能用_items=somearray,而是得用self.items。我开始
是想在viewmodel里定义一个readonly的items属性(理论上也应该是readonly的,因为
ViewController只负责从ViewModel拿数据而已),然后通过_items进行赋值,但是订阅了
viewmodel的items后死活收不到消息。我一直感觉这不科学,也许是我的打开方式不对,但是最终
都没有解决。这里希望知道的人能不吝赐教,在下感激不尽。
3、实现可以cancel的http请求时,不能用replay,replayLast,replayLazily。关于这3者
的区分可以https://www.cnblogs.com/zz-vv/p/4834042.html,我觉得分析的很详细。