ios - 如何从 Swift View 模型绑定(bind)到 Obj-c View Controller ?

标签 ios objective-c swift reactive-programming reactive-cocoa

我正在使用 ReactiveCocoa 4.1.0,并且正在将(新的)Swift View 模型与(遗留的)Obj-c View Controller 连接起来。我在使用 RACObserve 从 View 模型观察 String 属性时遇到问题。我不能使用 MutableProperty 因为 View Controller 在 Obj-c 中。 RACObserve subscribeNext 在第一次设置属性时触发一次,但在更改它们之后,似乎没有信号触发。我基本上:

在 View Controller 中:

[RACObserve(self.viewModel, buttonTitle) subscribeNext:^(NSString *title) {
    // Do something
    }];

在 View 模型中:

init() {
   self.buttonTitle = "Original Value"
}
func foo() {
   self.buttonTitle = "Changed Value"
}

即使在将更改放入 Signal Producer 并使用 observeOn(UIScheduler()).start()

进行观察后,我也看到原始值着火了,但从未更改过的值>

有什么想法吗?

谢谢!

最佳答案

您需要确保通过 KVO 可观察到的任何属性都被标记为动态

关于ios - 如何从 Swift View 模型绑定(bind)到 Obj-c View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086444/

相关文章:

arrays - 排序数组和对应数组

ios - Swift - 如何从具有 String 属性的对象数组创建字符串?

ios - Swift 项目中体系结构的 undefined symbol

ios - 仅在异步函数执行完毕后运行代码

ios - 两个 NSDate 对象之间的天数

objective-c - 使用 | 执行 shell 命令(管道)使用 NSTask

objective-c - 带有声音文件的动画 iOS

ios - 如何在 iOS 中连接或断开 wifi 时收到通知?

ios - 如何在 xcode 中将波斯日期转换为公历日期?

ios - WatchKit:捆绑标识符和 WKAppBundleIdentifer 之间有什么区别?为什么它会导致应用程序组无法工作?