概述
一 、集成
在Podfile文件中加入 pod 'ReactiveCocoa', '~> 7.2.0',会自动集成ReactiveCocoa,ReactiveSwift,Result三个库,导入头文件就可以使用了。
二 、基本用法
2.1 用户交互
// 监听文本框输入内容
accountTextField.reactive.continuousTextValues.observeValues { (text) in
print("account(text ?? "")")
}
// 监听按钮的点击事件
loginBtn.reactive.controlEvents(.touchUpInside).observeValues { (button) in
print("loginBtnClick")
}
2.2 过滤
// 当文本的内容长度大于3的时候,才想监听文本的内容
passwordTextField.reactive.continuousTextValues.filter { (text) -> Bool in
return text!.count > 3
}.observeValues { (text) in
print("accountfilter(text ?? "")")
}
2.3 转换
// text的值映射成text的字符数
textField.reactive.continuousTextValues.map { (text) -> Int in
return (text?.characters.count)!
}.filter { (length) -> Bool in
return length > 5
}.observe { (length) in
print(length)
}
2.4 冷信号
func getChatArray() -> SignalProducer<Any, NoError> {
return SignalProducer<Any, NoError>.init { (observer, _) in
self.request.GET(url: Host, paras: nil, success: { (request, response) in
if let response = response {
self.dataArray = self.WebArray()
observer.send(value: response)
observer.sendCompleted()
}
}, failure: { (request, error) in
observer.sendCompleted()
})
}
}
// 创建信号,执行
loadDataAction = Action.init(execute: getChatArray)
loadDataAction?.apply().start()
// observer 监听
viewModel.loadDataAction?.events.observe({ (event) in
print(event)
})
2.5 热信号
// 热信号
let (signalA, observerA) = Signal<String, NoError>.pipe()
let (signalB, observerB) = Signal<String, NoError>.pipe()
// 联合信号
Signal.combineLatest(signalA, signalB).observeValues { (value) in
print( "收到的值(value.0) + (value.1)")
}
observerA.send(value: "1")
//注意:如果加这个就是,发了一次信号就不能再发了
observerA.sendCompleted()
observerB.send(value: "2")
observerB.sendCompleted()
三 、总结
知识点:区别冷信号和热信号
Swift中,SignalProducer 对应 RACSignal 为冷信号, Signal 对应的 RACSubject 为热信号。
1.冷信号模式,是被动的,需要有人订阅才开启热信号,热信号是主动的,就算没有订阅者也会即刻推送
热信号可以有多个订阅者,一对多;冷信号只能一对一,当有新的订阅者,信号是重新完整发送的
形象的说:热信号像是直播,冷信号像是点播
2..冷信号个人用来进行网络请求,热信号进行类似代理或者通知的数据传递模式,这样就可以简单的理解为,RAC其实就是把apple的一套 delegate,Notification,KVO等一系列方法综合起来了,用起来更舒服罢了。
最后
以上就是超级发带为你收集整理的RAC7.0 在Swift项目中的基本使用 一 、集成二 、基本用法三 、总结的全部内容,希望文章能够帮你解决RAC7.0 在Swift项目中的基本使用 一 、集成二 、基本用法三 、总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复