我的应用程序使用ReactiveCocoa 4.0,我使用MVVM模式。
我想从ViewController中观察ViewModel中的一些值。但是,我从ViewModel中的MutableProperty只获得了一个初始下一个事件,并在ViewController中进行了以下观察
// in the ViewController
self.viewModel.player.producer.startWithNext { player in
// Gets called only once
}
ViewModel中的mutable属性定义如下
let player = MutableProperty<Player>(Player())
在更改时,我更改了播放器的value属性。
奇怪的是:在ViewModel中,如果我以完全相同的方式观察SignalProducer,我将获得所有更新。
// in the ViewModel
self.player.producer.startWithNext { player in
// Gets called on every change to player.value
}
任何想法可能是什么原因?
修改
正如Cosyn建议的那样:我检查了其他事件,例如已完成或错误 - 没有发送任何可能阻止信号的事件。 此外,我稍后检查了MutableProperty的实例和viewModel实例本身 - 所有相同的内容都没有改变或取消。