Rxswift是什么
RxSwif是 ReactiveX 的Swift版本鸠真,也就是一個(gè)函數(shù)式響應(yīng)編程的框架呼巷。對,就這一句話捞烟。想要知道他做什么的薄声,我們先來了解一下觀察者模式。
觀察者模式
關(guān)于觀察者模式我想大伙應(yīng)該都很了解了吧题画,什么KVO默辨,通知等都是觀察者模式,在設(shè)計(jì)模式中他可是一個(gè)重中之重的設(shè)計(jì)模式安韵ⅰ缩幸!比如一個(gè)寶寶在睡覺,爸爸媽媽竞思,爺爺奶奶總不能在那邊一只看著吧表谊?那樣子太累了。他們該做啥事就做啥事唄盖喷,只要聽到寶寶的哭聲爆办,他們就給寶寶喂奶就行了。這就是一個(gè)典型的觀察者模式课梳。寶寶是被觀察者距辆,爸爸媽媽等是觀察者也稱作訂閱者,只要被觀察者發(fā)出了某些事件比如寶寶哭聲暮刃、叫聲都是一個(gè)事件跨算,通知到訂閱者,訂閱者們就可以做相應(yīng)的處理工作椭懊。
Rxswift做了什么
RxSwift把我們程序中每一個(gè)操作都看成一個(gè)事件诸蚕,比如一個(gè)TextField中的文本改變,一個(gè)按鈕被點(diǎn)擊,或者一個(gè)網(wǎng)絡(luò)請求結(jié)束等挫望,每一個(gè)事件源就可以看成一個(gè)管道,也就是sequence狂窑,比如TextField媳板,當(dāng)我們改變里面的文本的時(shí)候,這個(gè)TextField就會不斷的發(fā)出事件泉哈,從他的這個(gè)sequence中不斷的流出蛉幸,我們只需要監(jiān)聽這個(gè)sequence,每流出一個(gè)事件就做相應(yīng)的處理丛晦。同理奕纫,Button也是一個(gè)sequence,每點(diǎn)擊一次就流出一個(gè)事件烫沙。也就是我們把每一步都想成是一個(gè)事件就好去理解RxSwift了匹层。
如何在工程中使用Rxswift
1、創(chuàng)建XCode工程锌蓄,在工程目錄下創(chuàng)建Cartfile文件升筏,文件內(nèi)容如下:
github "ReactiveX/RxSwift" ~> 4.0
2、打開Terminal瘸爽,進(jìn)入到工程根目錄您访,運(yùn)行Carthage命令:
carthage update
// carthage update --platform iOS //只加載iOS平臺的資源
3、在工程中設(shè)置對RxSwift的依賴
- 設(shè)置工程 BuildSettings->Framework Search Paths 添加路徑 "$(SRCROOT)/Carthage/Build/iOS"
-
把 工程目錄/Carthage/Build/iOS 下的 RxSwift.framework 拖拽到 General->Embedded Binaries下剪决,如圖:
image.png - 在需要使用的類中添加引用
import RxSwift