Rx
是 ReactiveX
的縮寫,簡單來講就是基於異步 Event
(事件)序列的響應式編程。Rx
能夠簡化異步編程方法,並提供更優雅的數據綁定。讓咱們能夠時刻響應新的數據同時順序地處理它們。Rx
自己能夠說是一種跨平臺的標準,它有本身的社區論壇,無論是web
仍是移動開發,都能用 Rx
的思惟和方法來完成你的工做。Rx
的庫。除了我後面會着重介紹的 RxSwift
以外,還有 RxJava, RxJS, RxKotlin, Rx.NET...
等等。Rx
庫雖然用的語言不一樣,但它們之間其實都是相通的,都有相同的 API
。因此說若是之後你使用別的語言作其餘的方面的開發,一樣是可使用相同的思惟甚至相同的方法接口(除了語言不一樣)來編程。Rx
你們庭的成員,能夠訪問它的主頁(1)在編寫代碼時咱們常常會須要檢測某些值的變化(好比:textFiled
輸入值的變化、數據請求完成或失敗的變化),而後進行相應的處理。react
delegate
、notifinotion
、target-action
、KVO
等等。RectiveX
機制(由 RxSwift
實現)的出現,讓程序裏的事件傳遞響應方法作到統一。將以前那些經常使用的事件傳遞方法(好比:delegate
、notification
、target-action
等等),所有替換成 Rx
的「信號鏈」方式。(2)若是咱們平時使用的是 MVVM
開發模式的話,經過RxSwift
能夠得到更加方便的數據綁定的方法,使得 MVVM
開發更加如虎添翼。git
(1)從 GitHub上下載最新的代碼github
(2)將下載下來的源碼包中 Rx.xcodeproj
拖拽至你的工程中web
(3)工程 -> General
-> Embedded Binaries
項,把 iOS 版的 RxSwift.framework
、RxCocoa.framework
添加進來編程
pod --version: 1.3.1
已經過測試」xcode
# Podfile use_frameworks! target 'YOUR_TARGET_NAME' do pod 'RxSwift', '~> 4.0' pod 'RxCocoa', '~> 4.0' end # RxTests 和 RxBlocking 將在單元/集成測試中起到重要做用 target 'YOUR_TESTING_TARGET' do pod 'RxBlocking', '~> 4.0' pod 'RxTest', '~> 4.0' end」
替換 YOUR_TARGET_NAME
而後在 Podfile
目錄下, 終端輸入:ruby
$ pod install
carthage version: 0.26.2
已經過測試bash
添加到Cartfile
異步
github "ReactiveX/RxSwift" ~> 4.0
$ carthage update
import RxSwift import RxCocoa
前面配置的時候,咱們會在 Swift
項目中引入 RxSwift
、RxCocoa
這兩個庫,他們的做用分別是:異步編程
Swift
語言的 Rx
標準實現接口庫,因此 RxSwift
裏不包含任何 Cocoa
或者 UI
方面的類。RxSwift
針對於 iOS
開發的一個庫,它經過 Extension
的方法給原生的好比 UI
控件添加了 Rx
的特性,使得咱們更容易訂閱和響應這些控件的事件。