ReactiveCocoa与swift
Why This Post毫无疑问的,ReactiveCocoa是iOS开发中极其强大的辅助,但是函数响应式编程的概念对于大多数人还是相当新颖,甚至有一些古怪的。Swift和ReactiveCocoa是绝配,但是现在已有的ReactiveCocoa的教程多是Objective-C的,也不是非常详细,因此只能摸索。这篇文章不是ReactiveCocoa的教程,而是作者探索的过程,希望对新接触这个框架的人有帮助。 函数响应式编程是什么编程的范式从计算机程序刚开始时便有分歧,而随着计算机性能的不断增长和编译器的进化,原本由于执行效率低下而被认为是纯学术的函数式编程开始进入人们的视野。函数式编程中没有所谓的变量,一切都是不可变的。而响应式编程是基于数据流的,应用逻辑被抽象为管道。这两种思想对于现代的并发程序设计尤其有利,以至于MS,Google,Apple相继在自己的语言中支持函数式编程。这里就不再在学理上深究了,而是直接打开XCode,用代码来感受一下函数响应式编程的魅力。 安装ReactiveCocoa作者自己由于初次接触外部的框架,折腾了很久才把ReactiveCocoa的框架安装完毕。 ReactiveCocoa的基本概念官方的仓库中对整个框架有一个概览,可以参考这个。 建立一个简单的字符计数程序
UI布局这是一个Single View Application,界面上方是一个 核心代码这里先把 import UIKit import ReactiveCocoa import Result class ViewController: UIViewController { @IBOutlet weak var outputLabel: UILabel! @IBOutlet weak var inputField: UITextField! override func viewDidLoad() { super.viewDidLoad() inputField.rac_textSignal() .toSignalProducer() .map{ text in text as! String} .throttle(0.5,onScheduler: QueueScheduler.mainQueueScheduler) .map {text in return "(text.characters.count)" } .startWithNext { [weak self] text in if let strongSelf = self { strongSelf.outputLabel.text = text } } } } 这里主要就是在
注意到在第六步里面,用了一个 Cmd-R,应用正常运行了,, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |