總結(jié)ReactiveCocoa實踐

2018-08-01 15:55 更新

本章我們使用ReactiveCocoa做了很多實踐,總結(jié)了幾個關(guān)鍵點:

  • 函數(shù)式編程可在任何地方起作用
    • 數(shù)據(jù)導(dǎo)入的代碼,即使沒有反應(yīng)式代碼,我們也能夠使用map:filter:來幫忙。在抽象方面,總覺得從未被實際實現(xiàn)。
  • 為函數(shù)的副作用使用subscribeNext:
    • subscribeNext:和其他類似的方法訂閱信號的副作用,返回RACDisposable實例(這種實例將被傳閱,直到信號完成被回收為止) 為副作用使用這些方法---使得事物看起來像主動跟外界(一個沒有反應(yīng)式的世界)交互似的。
  • 避免顯示狀態(tài)下進行訂閱處理

    • 按照設(shè)計準則,無論何時都應(yīng)該避免顯示的訂閱處理。請記住我們是怎樣用takeUntil:來自動處理FRPCell類的訂閱的。使用takeUntil:允許信號值通過,直到它的參數(shù)被傳遞下去或者它自己的值完成?;旧线@種情況下,接收者已經(jīng)完成接收了。
  • 內(nèi)存管理的魔法

    • ARC下,在代碼的表面上你擺脫了內(nèi)存管理。ReactiveCocoa中也一樣。唯一要注意的是,不能在任何signal的block中捕捉self。

以上,就是第五章的全部內(nèi)容。接下來我們將介紹Model-View-ViewModel這種程序架構(gòu),給App添加一個日志系統(tǒng),并寫一些單元測試,出發(fā)吧!

BTY:函數(shù)副作用:指當調(diào)用函數(shù)時,除了返回函數(shù)值之外,還對主調(diào)用函數(shù)產(chǎn)生附加影響。例如修改全局變量或修改參數(shù),一般而言函數(shù)副作用會給程序設(shè)計帶來不必要的麻煩,使程序難以查找錯誤,并降低程序的可讀性。嚴格的函數(shù)式語言要求函數(shù)必須無副作用。

有一種特殊的情況,就是我們這里的函數(shù)。它的參數(shù)是一種In/Out作用的參數(shù),即函數(shù)可能改變參數(shù)里面的內(nèi)容,把一些信息通過輸入?yún)?shù),夾帶到外界。這種情況,嚴格來說,也是副作用,是非純函數(shù)。即我們所討論的函數(shù)反應(yīng)型編程中的函數(shù)式編程屬于非純函數(shù),它是具有副作用的。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號