我正在尝试找到一种在实际更改之前观察核心数据关系(更具体地说是无序关系中已删除的项目)的方法。您可以将其想象为其他 Cocoa API 已知的“将更改”通知。
原因是我想根据这些更改更新 UI,并且我需要一个参数,该参数不存储在托管对象中,而是存储在其他数据结构中(在我的例子中,它是来自 NSArrayController
的索引) 。仅当项目尚未从关系中删除时,我才能检索参数。
我能找到的获得此类“将更改”通知的唯一方法是重写 KVO 方法 -willChangeValueForKey:withSetMutation:usingObjects:
在定制NSManagedObject
子类化并转发此信息。问题是the documentation说:“你不能覆盖这个方法。”这让我想找到一个更好的解决方案。
- 在这种情况下,“将会改变”的方法正确吗?
- 如果是这样,我怎样才能实现它?如果不是,我应该如何通过其他方式解决上述问题?
最佳答案
您可以只重写关系的 setter 方法。
关于objective-c - 如何在核心数据关系实际发生变化之前观察它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075182/