我正在使用ReactiveCocoa 4.1.0,我正在将(新)Swift视图模型与(传统)Obj-c视图控制器连接起来。我在使用RACObserve
从视图模型中观察String属性时遇到问题。我无法使用MutableProperty
,因为视图控制器位于Obj-c中。 RACObserve
subscribeNext
在首次设置属性时触发一次,但在更改它们之后,似乎没有信号触发。我基本上有:
在View Controller中:
[RACObserve(self.viewModel, buttonTitle) subscribeNext:^(NSString *title) {
// Do something
}];
在视图模型中:
init() {
self.buttonTitle = "Original Value"
}
func foo() {
self.buttonTitle = "Changed Value"
}
即使将更改放入Signal Producer并使用observeOn(UIScheduler()).start()
有什么想法吗?
谢谢!
答案 0 :(得分:1)
您需要确保通过KVO观察到的任何财产都被标记为dynamic
。
答案 1 :(得分:0)
RACObserve基于KVO。如果你想在swift中使用KVO,那么类应该继承NSObject类。 KVOImplementation
正如@David Rodrigues所说:
dynamic var buttonTitle: String?