Ios 使用ReactiveCocoa 4在MVVM中将信号从视图传递到模型
我正在一个尽可能基本的iOS应用程序(Swift)中实现ReactiveCocoa 4,以便更好地了解如何在MVVM体系结构中使用它。我的问题是:如何从视图到模型获取UITextField的文本信号 我在这里得到的效果很好,但感觉这只是50%的反应(在任何情况下都不太漂亮): 查看(在viewDidLoad中) 查看模型Ios 使用ReactiveCocoa 4在MVVM中将信号从视图传递到模型,ios,swift,mvvm,reactive-cocoa,Ios,Swift,Mvvm,Reactive Cocoa,我正在一个尽可能基本的iOS应用程序(Swift)中实现ReactiveCocoa 4,以便更好地了解如何在MVVM体系结构中使用它。我的问题是:如何从视图到模型获取UITextField的文本信号 我在这里得到的效果很好,但感觉这只是50%的反应(在任何情况下都不太漂亮): 查看(在viewDidLoad中) 查看模型 var originalText:String?{ didSet{self.model.originalText=originalText} } var origin
var originalText:String?{
didSet{self.model.originalText=originalText}
}
var originalText:String?{
didSet{//Do model stuff}
}
型号
var originalText:String?{
didSet{self.model.originalText=originalText}
}
var originalText:String?{
didSet{//Do model stuff}
}
这就是我目前实现此行为的方式,我对RAC也是相当陌生的,所以对此持保留态度 我使用的是
reactivecococoa4.1.0和Rex 0.10.0
视图模型:
originalText
生产者
属性
在这个范围内,调用originalText.producer.startWithNext
将创建一个信号并添加一个观察者,这样您就能够从ViewModel中接收值
let originalText: MutableProperty<String> = MutableProperty("")
func observeTextField(){
originalText.producer.startWithNext { (str) in
self.model.originalText = str
}
}
let textfield producer=(originalTextField.rac_textSignal()
.toSignalProducer()
.map{text in text as!String}
.ignoreError())!
viewModelInstance.originalText
let textFieldProducer = (originalTextField.rac_textSignal()
.toSignalProducer()
.map {text in text as! String}
.ignoreError())!
viewModelInstance.originalText <~ textFieldProducer