我正在使用MVVM處理大量複雜視圖,其中將核心數據模型對象綁定到視圖模型,視圖模型又綁定到我的視圖。例如,Model.children綁定到ViewModel.children,ViewModel.children綁定到View.presentedChildren。核心數據不再對關係的更改發出綁定
直到最近這工作很好。當從Model.children中刪除一個孩子時,所有的綁定按照預期向下開始行,並且視圖更新以反映模型對象的當前狀態。但是,升級到Xcode 7後,綁定不會觸發。它們在初始設置綁定時按預期工作,但如果修改了子關係,則綁定永遠不會觸發。
添加到模型對象的子關係中的KV觀察者確實觸發了。
我很明顯失去了一些東西。任何提示將不勝感激。
僅供參考對10.11編譯但在10.10中運行。
[更新]
我把它換成綁定:實施observeValueForKeyPath:上的addObserver的關係電話如下:
- (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時更改。