入门 RxSwift

动机

RxSwift 是Swift实现的一套工具包, 提供了用来实现反应式编程的类和方法.
使用事件流的方式来考虑数据的处理并管理应用的状态. 这个角度跟以往的思维方法相比, 能简化思考路径, 特别是应对异步方面, 相比状态机更加容易上手并且产生的联代问题更少.

学习资料

**RxSwift:ReactiveX for Swift **翻译
Rx 第一印象
Rx快速指南系列

  1. 建议先读翻译, 搞清楚
  • 为什么使用 Rx, 好处都有哪些
  • 典型的使用场景.
  1. 然后阅读快速指南
  2. 最后看看第一印象

理解 RxSwift

反应式编程的核心是事件( Event )流( Observables ), 常见的事件处理操作有变换(通过 map), 过滤, 合并( Reduce)


入门 RxSwift_第1张图片
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

你可能感兴趣的:(入门 RxSwift)