iOS RAC學(xué)習(xí)筆記 從零起步(第一天)

前言

現(xiàn)在很多公司都崇尚RAC開(kāi)發(fā)了,尤其是配合MVVM的架構(gòu),使整個(gè)項(xiàng)目的邏輯性更加的強(qiáng),而且維護(hù)代碼和迭代功能也不是那么頭疼了。本人覺(jué)得很重要,所以,從今天開(kāi)始,分享一下RAC的學(xué)習(xí)方法,一步一步的教大家接受并開(kāi)始嘗試這種機(jī)制。這是第一天學(xué)習(xí)筆記,以理論為主,希望大家能靜下心沉淀學(xué)習(xí)一下,為以后的學(xué)習(xí)做鋪墊。

什么是RAC?

全拼是ReactiveCocoa,是由Github開(kāi)源的一個(gè)應(yīng)用于iOS和OS開(kāi)發(fā)的新框架,簡(jiǎn)單的說(shuō),就是一個(gè)第三方庫(kù),可以大大簡(jiǎn)化你的代碼過(guò)程。RAC具有函數(shù)式編程和響應(yīng)式編程的特性,并且目前看來(lái)安全可靠。

RAC的作用?(個(gè)人感覺(jué))

  • 響應(yīng)式編程的特性,代碼思路更加清晰,數(shù)據(jù)處理更加清晰
  • 簡(jiǎn)化代碼,降低各個(gè)模塊的耦合度
  • 需要用到通知的地方用起來(lái)很方便,而且和項(xiàng)目框架配合很靈活

RAC中用到的常見(jiàn)類

  • RACSiganl 信號(hào)類,一般表示將來(lái)有數(shù)據(jù)傳遞,只要有數(shù)據(jù)改變,信號(hào)內(nèi)部接收到數(shù)據(jù),就會(huì)馬上發(fā)出數(shù)據(jù)。通俗地說(shuō),就是需要去處理什么事情,就發(fā)個(gè)信號(hào),告訴對(duì)方,可以處理啦。

默認(rèn)一個(gè)信號(hào)是冷信號(hào),默認(rèn)不會(huì)被觸發(fā),只有訂閱了這個(gè)信號(hào),這個(gè)信號(hào)才會(huì)成為熱信號(hào),值改變的時(shí)候,才會(huì)被觸發(fā)。

至于如何訂閱信號(hào)和創(chuàng)建信號(hào),今天先不說(shuō),下篇文章會(huì)系統(tǒng)的講下應(yīng)用和具體流程。

  • RACSubscriber 訂閱者 ,用于發(fā)送信號(hào) ,這是一個(gè)協(xié)議,只有遵守這個(gè)協(xié)議,并且實(shí)現(xiàn)方法才能成為訂閱者。通過(guò)create創(chuàng)建的信號(hào),都有一個(gè)訂閱者,幫助他發(fā)送數(shù)據(jù)。

  • RACDisposable 用于取消訂閱或者清理資源,當(dāng)信號(hào)發(fā)送完成或者發(fā)送錯(cuò)誤的時(shí)候,就會(huì)自動(dòng)觸發(fā)它。也可以主動(dòng)取消訂閱信號(hào)。

  • RACSubjec 信號(hào)提供者,通俗地說(shuō),本身就是信號(hào)源,也是發(fā)送信號(hào)的人。一般傳遞數(shù)據(jù),或者要去處理事情,直接調(diào)用他就好了。

  • RACCommand RAC中用于處理事件的類,可以把事件如何處理,事件中的數(shù)據(jù)如何傳遞,包裝到這個(gè)類中,他可以很方便的監(jiān)控事件的執(zhí)行過(guò)程。我一般是用做數(shù)據(jù)請(qǐng)求的類,把數(shù)據(jù)請(qǐng)求放到這里。

  • RACMulticastConnection用于當(dāng)一個(gè)信號(hào),被多次訂閱時(shí),為了保證創(chuàng)建信號(hào)時(shí),避免多次調(diào)用創(chuàng)建信號(hào)中的block,造成副作用,可以使用這個(gè)類處理。通俗地說(shuō),就是為了避免重復(fù)調(diào)用,多次請(qǐng)求。

  • RACScheduler RAC中的隊(duì)列,用GCD封裝的,沒(méi)有深入使用過(guò),后期我會(huì)補(bǔ)上這個(gè)類的應(yīng)用場(chǎng)景。

one day結(jié)束語(yǔ)

今天給大家講解的都是理論知識(shí),一定要靜下心來(lái)記錄一下,不懂沒(méi)有關(guān)系,很快我會(huì)根據(jù)例子講解下他們的具體應(yīng)用,相信大家就會(huì)有更感官的理解了。學(xué)習(xí)知識(shí)要循序漸進(jìn),知其然知其所以然,希望我的小小文字,能幫助你點(diǎn)滴。謝謝支持。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • RAC使用測(cè)試Demo下載:github.com/FuWees/WPRACTestDemo 1.ReactiveC...
    FuWees閱讀 6,440評(píng)論 3 10
  • 前言 之前對(duì)RAC有了一個(gè)基本的認(rèn)識(shí),了解了它的作用,以及RAC的運(yùn)行機(jī)制,我們知道只要是信號(hào)(RACSignal...
    大大盆子閱讀 4,512評(píng)論 0 11
  • 標(biāo)簽: iOS RAC 概述 ReactiveCocoa是一個(gè)函數(shù)響應(yīng)式編程框架,它能讓我們脫離Cocoa AP...
    GodyZ閱讀 7,570評(píng)論 16 97
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 1.ReactiveCocoa簡(jiǎn)介 ReactiveCocoa(簡(jiǎn)稱為RAC),是由Github開(kāi)源的一個(gè)應(yīng)用于i...
    清蘂翅膀的技術(shù)閱讀 2,003評(píng)論 0 1