动机
RxSwift 是Swift实现的一套工具包, 提供了用来实现反应式编程的类和方法.
使用事件流的方式来考虑数据的处理并管理应用的状态. 这个角度跟以往的思维方法相比, 能简化思考路径, 特别是应对异步方面, 相比状态机更加容易上手并且产生的联代问题更少.
学习资料
**RxSwift:ReactiveX for Swift **翻译
Rx 第一印象
Rx快速指南系列
- 建议先读翻译, 搞清楚
- 为什么使用 Rx, 好处都有哪些
- 典型的使用场景.
- 然后阅读快速指南
- 最后看看第一印象
理解 RxSwift
反应式编程的核心是事件( Event )流( Observables ), 常见的事件处理操作有变换(通过 map), 过滤, 合并( Reduce)
Paste_Image.png
这张图描述了工作的原理, Observable 代表可以被订阅的事件流
继续学习
先克隆 RxSwift 工程, 参考说明使用 Xcode 8打开并编译后, 打开playground, 选择 Rx.playground > Introduction 文件, 可以运行看到输出.
之后我们可以尝试自己去玩玩了
添加一个自己的测试
/**
* Milo Test
*/
example("Milo Test") {
Observable.of(1,2,3)
.map {"\($0)\($0)"}
.subscribeNext { print($0) }
}
输出应该是:
--- Milo Test example ---
11
22
33
玩耍的时候, 可以参考上文提到的Rx快速指南系列, 熟悉map, filter等各种基本的操作.
应用入门
接下来可以做一个 iOS 应用小试一下.
可以参考 RxTableViewExample
这里简单提示一下, 如果需要在 swift3.0 + Xcode8下使用, 请看一下RxSwift 的说明文档. 下面是我的 Podefile 文件供参考:
target 'RxTableSample' do
use_frameworks!
# Pods for RxTableSample
pod 'RxSwift', '~>3.0.0-beta.2'
pod 'RxCocoa', '~>3.0.0-beta.2'
pod 'RxDataSources', '~> 1.0.0-beta.3'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.10'
end
end
end
网友评论