我正在尝试使用 RAC 3.0 在我的视图和我的 viewModel 之间建立连接。(一直在阅读 Colin Eberhardt 的精彩教程)我想订阅一个每次func mouseUp(theEvent: NSEvent)
调用都会触发的信号。IE
func mouseUp(theEvent:NSEvent){
//create some signal or pass a variable here to my viewModel
}
然后在我的 viewModel 中我想订阅那个流。
let signalFromview = MutableProperty<String>("")
signalFromView.observe(next: { println($0) })
但我无法让它工作。我设法让它工作的唯一方法是订阅一个 SignalProducer,如下所示:
看法:
func mouseUp(theEvent:NSEvent){
viewModel.signalFromView.put(someValue)
}
视图模型:
signalFromView.producer
|>start { println($0) }
但这不是我想要的,因为使用生产者“拉”值,即在第一次运行时,viewModel 中的代码将在初始化时以空值运行,因为它试图拉出不存在的东西.. .
希望这是有道理的。