RAC的基本使用

RAC的基本使用


在RAC中,一切都是信號(hào)!

RACSignal

RACSignal實(shí)例化一個(gè)信號(hào),首先,需要?jiǎng)?chuàng)建一個(gè)信號(hào),此時(shí),該信號(hào)沒有訂閱者,稱為冷信號(hào);當(dāng)有訂閱者訂閱了該信號(hào),改信號(hào)則變?yōu)闊嵝盘?hào);當(dāng)信號(hào)監(jiān)聽的資源發(fā)生改變時(shí),此信號(hào)就會(huì)給監(jiān)聽者發(fā)送消息!

總的來說,RACSignal的使用分三個(gè)步驟
1.創(chuàng)建信號(hào),通過RACSignal來創(chuàng)建信號(hào),此時(shí)信號(hào)為冷信號(hào)
2.訂閱信號(hào),訂閱者訂閱這個(gè)信號(hào),此時(shí)變?yōu)闊嵝盘?hào)
3.發(fā)送信號(hào),信號(hào)發(fā)送信號(hào),訂閱者接收到信號(hào)

經(jīng)過了簡(jiǎn)單的使用,下邊我們看一下RACSignal的實(shí)現(xiàn)原理:


RACSignal原理.png
  1. 首先RACSignal中+createSignal會(huì)調(diào)用子類實(shí)現(xiàn)
  2. 子類RACDynamicSignal中+createSignal方法會(huì)將didSubcriber這個(gè)Block以屬性_didSubcriber的形式保存
  3. RACSignal調(diào)用+subscribeNext訂閱信號(hào),+subscribeNext中調(diào)用RACSubscriber對(duì)象的+subscriberWithNext:error:completed方法將訂閱信號(hào)的Block傳遞過去
    4.RACSubscriber對(duì)象的+subscriberWithNext:error:completed方法將訂閱信號(hào)的Block保存在_next中
    5.+subscribeNext中調(diào)用創(chuàng)建信號(hào)時(shí)保存的_didSubcriber
  4. 將存儲(chǔ)了_next的RACSubscriber對(duì)象傳遞過去
  5. _didSubcriber中取到存儲(chǔ)了_next的RACSubscriber對(duì)象取出來
  6. RACSubscriber對(duì)象調(diào)用_next,此時(shí),就將需要發(fā)送的值發(fā)送到了訂閱者的回調(diào)中
最后編輯于
?著作權(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)容

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