RAC全稱 : ReativeCocoa 響應式編程的一個框架。(重量型框架,好比 AFN) RXSwift ....是對自己語言特性上進行一個擴展。面試
RAC能作什麼?編程
簡單粗暴的處理事件。swift
什麼是響應式編程?網絡
響應式編程簡單理解就是 。修改一處地方,另一個地方不用運行能夠跟着自動修改變化。 例如,在命令式編程環境中,a:=b+c表示將表達式的結果賦給a,而以後改變b或c的值不會影響a。但在響應式編程中,a的值會隨着b或c的更新而更新。 5 = 3 + 2 。 修改後面的表達式值,5也會跟着更新。框架
問題來了:異步
在事件發生做出響應? 在iOS開發中常遇到的事件有哪些?學習
Target ,Delegate , KVO , 通知, 時鐘, 網絡異步回調......blog
全部框架都叫Cocoa。事件
pod 'ReactiveObjC' 引入進來。開發
爲何要學 RAC ?
1.面試須要,增長面試談資。 (美團,今日頭條.......都在用) 2.如何自學一個框架。
RAC是 Github 團隊一共19人共同開發的一個開源項目。 超級重量級的框架。
RAC的目的: 事件的監聽。接管了蘋果全部的事件機制。 好比:Target ,Delegate 協議, KVO , 通知, 時鐘, 網絡異步回調......
RAC 特色:學習曲線異常的陡峭。監聽的事件比較多,一個個學的話比較太耗費時間。 團隊開發時候須要謹慎使用,雖然比較好用。 須要不斷的代碼審覈, 保證團隊全部人的代碼風格一致。
RAC 2.5的版本不支持 Swift . 3.0 最後純OC 的 RAC 版本。 也能夠直接用 ReactiveObjC. 不然版本號不要超過3.0. 4.0支持swift2.0.
思惟導圖:
幾個基本概念: 它是怎麼作到事件的監聽的? 蘋果的事件機制 ------- 把它全都包裝成 信號。 之前各類處理方式,如今都用信號作管理,把它都包裝成信號後,調用的話 有一個 訂閱者 來調用它, 當訂閱者接到改變,信號發生了改變,發送 通知 訂閱者有改變。