前言
現(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)滴。謝謝支持。