我将MVVM用于许多复杂视图,其中我将Core Data模型对象绑定到视图模型,而视图模型又绑定到我的视图。例如,Model.children绑定到ViewModel.children,ViewModel.children绑定到View.presentedChildren。
直到最近,这才起得很好。从Model.children中删除子项时,所有绑定都按预期向下触发,并且视图已更新以反映模型对象的当前状态。但是,升级到Xcode 7后,绑定不会被激活。它们在最初设置绑定时按预期工作,但是如果修改了子关系,则绑定永远不会触发。
添加到模型对象的子关系的KV观察者会触发。
我显然遗漏了一些东西。任何提示都将非常感激。
FYI针对10.11进行编译,但是在10.10中运行。
[UPDATE]
我已经替换了bind:调用与addObserver的关系:并实现了observeValueForKeyPath:如下所示:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
{
[self setValue: [object valueForKey: keyPath]
forKey: keyPath];
}
这可行,但不能解释在bind的实现中发生了什么变化:对于NSObject或NSManagedObject。
答案 0 :(得分:0)
我已经为我的应用程序的这个区域采用了Reactive Cocoa绑定,并且事情再次发挥作用。