MVVM+RAC 學(xué)習(xí)第一天

遇到的坑 (摘自 https://www.cnblogs.com/manji/p/4846591.html

獨(dú)自學(xué)習(xí)RAC還是有一定的難度的,畢竟面對(duì)眾多RAC的api要想完全理解下來(lái)還是挺困難的。
而且剛開始不熟悉的情況下很難針對(duì)某些特定的場(chǎng)景,想出比較合理的RAC處理方式(這句話是盜用
別人的,但是我也深有體會(huì))。這里列一下我寫這個(gè)demo時(shí)遇到的幾個(gè)坑吧,希望能幫別人繞過這些
坑,也算是功德一件。

 1、ViewModel里用來(lái)保存數(shù)據(jù)的數(shù)組,不能使用NSMutableArray。原因是RAC是基于KVO的,
而NSMutableArray的Add和Remove方法并不會(huì)給KVO發(fā)送通知,因此對(duì)NSMutableArray進(jìn)行
RACObserve時(shí),并不會(huì)達(dá)到我們想要的結(jié)果。(同理其他Mutable的也都不能用)
2、ViewModel里給items賦值時(shí),不能用_items=somearray,而是得用self.items。我開始
是想在viewmodel里定義一個(gè)readonly的items屬性(理論上也應(yīng)該是readonly的,因?yàn)?ViewController只負(fù)責(zé)從ViewModel拿數(shù)據(jù)而已),然后通過_items進(jìn)行賦值,但是訂閱了
viewmodel的items后死活收不到消息。我一直感覺這不科學(xué),也許是我的打開方式不對(duì),但是最終
都沒有解決。這里希望知道的人能不吝賜教,在下感激不盡。
3、實(shí)現(xiàn)可以cancel的http請(qǐng)求時(shí),不能用replay,replayLast,replayLazily。關(guān)于這3者
的區(qū)分可以https://www.cnblogs.com/zz-vv/p/4834042.html,我覺得分析的很詳細(xì)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1-------- 走進(jìn)前端 2-------- jQuery 3-------- CSS 4-------- A...
    依依玖玥閱讀 2,430評(píng)論 0 34
  • 看到題目,首先要感謝一下我的父母,我一直覺得我是一個(gè)非常幸運(yùn)的人,能在這樣的家庭生長(zhǎng),同時(shí)我也是一個(gè)非常幸福的人,...
    8979af45a4a0閱讀 356評(píng)論 0 1
  • 寒風(fēng)襲骨日漸涼,梧桐泣雨淚凝霜。 當(dāng)年比翼雙飛燕,何故憑枝暗自傷。
    孤城子閱讀 242評(píng)論 0 1
  • 往往每年這個(gè)時(shí)候,濟(jì)南的晚上的風(fēng)都會(huì)挺大,隔上幾分鐘就能聽到一陣兒呼嘯的風(fēng)聲,夾雜著旁邊修路的大型機(jī)器的轟鳴,確實(shí)...
    安于情長(zhǎng)_2f31閱讀 689評(píng)論 0 0

友情鏈接更多精彩內(nèi)容