响应式编程应用场景 ios响应式编程优缺点( 二 )


下面简单介绍一下 RxSwift , 不过这两种架构的概念是相似的 。
RxSwift
RxSwift 继承自观察者模式 , 模拟 Cocoa Touch 对象中的异步数据流 , 按通常的集合来看待这些对象 。通过利用可观测流继承一些 Cocoa Touch 类 , 可以订阅它们的输出 , 并利用复合运算(如 filter()、merge()、map() 和 reduce() 等)来使用这些输出 。
还回到刚才的例子中 , 假设一个 iOS 应用有两个滑块(sliderA 和 sliderB) , 并希望利用之前的表达式(A * 2 + B)不断更新标签(labelC)的值:
1. combineLatest(sliderA.rx_value, sliderB.rx_value) {
2. $0 * 2 + $1
3. }.map {
4. “Sum of slider values is ($0)”
5. }.bindTo(labelC.rx_text)
利用 UISlider 类的 rx_value 后缀 , 将滑块的值属性转化为可观测类型 , 
通过在每个滑块的可观测类型上使用 combineLatest() 操作 , 我们还创建了一种新的可观测类型 , 只要其中任何一个源流释放出一个项目 , 它就会释放项目 。结果就是一个元组 , 每个滑块值都可以通过操作回调而转换(代码行 2) 。然后将变换值映射到信息性字符串(代码行 4) , 并将其值绑定到标签上(代码行 5) 。
通过组合 3 个独立的操作(combineLatest()、map()、bindTo()) , 我们就能精确地表达三种对象之间的关系并不断更新应用的 UI , 响应应用状态中的改变 。
额外介绍
上面的内容只是对 RxSwift 用途做了一个粗浅的介绍 。
参看样例代码 , 在这个例子中 , 使用可链接的异步任务下载在线资源 。如果这篇文章引发了你的好奇心 , 一定要看看这个例子 。
然后 , 可以读读这篇文档 , 学习其他一些 API 扩展 , 采用一种函数式并具有表现力的方式来开发 iOS 应用 。
还可阅读 使用轻量级模式 来了解Swift 模式如何帮助你处理大量相似对象 。
作者简介
Milton Moura(@mgcm)是一位葡萄牙的自由 iOS 开发者 。他曾就职于涉及航空、电信、能源等领域的多家公司 , 如今全心致力于使用苹果技术开发优秀应用 。除了醉心于设计与用户交互外 , 他还非常喜欢新的软件开发方式 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: