Learn RxSwift The Hard Way - Calculator(二)

To RxSwift:
初次见面,请多关照。

Demo 的 GitHub 地址:RxSwiftDemo

这里我们将实现 RxSwift Demo 中最简单的一个例子,加法器。

效果图

如图所示,有三个 UITextField,代表着三个输入的数字,最后是一个显示结果的 Label。这里的逻辑很简单,就不给大家展示代码了。

主要的逻辑代码如下:

Observable.combineLatest(number1.rx_text, number2.rx_text, number3.rx_text) {
  (textValue1, textValue2, textValue3) -> Int in
  return (Int(textValue1) ?? 0) + (Int(textValue2) ?? 0) + (Int(textValue3) ?? 0)
}
.map { $0.description }
.bindTo(result.rx_text)
.addDisposableTo(disposeBag)

其中,combineLatest 的效果可以从 http://rxmarbles.com/#combineLatest 这里很直观的看到。这里是将三个被加数的值进行计算,返回它们的和。map 将 Int 值转为 String,bindTo 将 String 值赋给了 result label。最后 addDisposableTo 是内存管理的东西,我们以后再谈。

从我们的第一个 Demo 中,就可以看出 RxSwift 的强大之处了。如果我们使用 Cocoa 的方式来实现,需要这监听这三个 TextField 的值变化,设置代理,然后进行计算,想想都头大。这里的代码简洁明了,爽!

Happy Hacking!

如果你希望使用 rss 的方式,可以订阅我的博客,文章将会同步更新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,087评论 19 139
  • 前言 在之前用Objective-C语言做项目的时候,我习惯性的会利用MVVM模式去架构项目,在框架Reactiv...
    Tangentw阅读 21,255评论 32 124
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • Retrofit是现在十分流行的网络请求库,底层封装了OkHttp,实现了JSON和POJO的互相转换,网络请求回...
    展翅而飞阅读 3,810评论 9 35
  • 组件: 1.openGW 2.Nginx 3.Tomcat 4.Redis 5.CDN 6.数据库 7.防火墙 8...
    生活需要仪式感阅读 193评论 0 0