遇到的坑 (摘自 https://www.cnblogs.com/manji/p/4846591.html)
獨自學(xué)習(xí)RAC還是有一定的難度的,畢竟面對眾多RAC的api要想完全理解下來還是挺困難的。
而且剛開始不熟悉的情況下很難針對某些特定的場景,想出比較合理的RAC處理方式(這句話是盜用
別人的,但是我也深有體會)。這里列一下我寫這個demo時遇到的幾個坑吧,希望能幫別人繞過這些
坑,也算是功德一件。
1、ViewModel里用來保存數(shù)據(jù)的數(shù)組,不能使用NSMutableArray。原因是RAC是基于KVO的,
而NSMutableArray的Add和Remove方法并不會給KVO發(fā)送通知,因此對NSMutableArray進(jìn)行
RACObserve時,并不會達(dá)到我們想要的結(jié)果。(同理其他Mutable的也都不能用)
2、ViewModel里給items賦值時,不能用_items=somearray,而是得用self.items。我開始
是想在viewmodel里定義一個readonly的items屬性(理論上也應(yīng)該是readonly的,因為
ViewController只負(fù)責(zé)從ViewModel拿數(shù)據(jù)而已),然后通過_items進(jìn)行賦值,但是訂閱了
viewmodel的items后死活收不到消息。我一直感覺這不科學(xué),也許是我的打開方式不對,但是最終
都沒有解決。這里希望知道的人能不吝賜教,在下感激不盡。
3、實現(xiàn)可以cancel的http請求時,不能用replay,replayLast,replayLazily。關(guān)于這3者
的區(qū)分可以https://www.cnblogs.com/zz-vv/p/4834042.html,我覺得分析的很詳細(xì)。