入门 RxSwift

动机

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

学习资料

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

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

理解 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容