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
的特性,使得咱们更容易订阅和响应这些控件的事件。