如何在实际更改之前观察Core Data关系?

时间:2014-01-12 13:28:24

标签: objective-c macos cocoa core-data nsarraycontroller

我试图在实际更改之前找到一种观察Core Data关系(更具体地说是无序关系的删除项)的方法。您可以将其想象为从其他Cocoa API中获知的“将更改”通知。

原因是我想根据这些更改更新UI,我需要一个参数,该参数不存储在托管对象中,而是存储在其他数据结构中(在我的例子中,它是来自{{1}的索引})。只有当项目没有从关系中删除时,我才能检索参数。

获得此类“将更改”通知的唯一方法是覆盖自定义NSArrayController子类中的KVO方法-willChangeValueForKey:withSetMutation:usingObjects:并转发此信息。问题是the documentation说:“你不能覆盖这种方法。”这让我想找到更好的解决方案。

  1. 在这种情况下,“会改变”方法吗?
  2. 如果是这样,我怎么能实现呢?如果没有,我该如何以另一种方式解决上述问题呢?

1 个答案:

答案 0 :(得分:1)

您可以改为改写关系的setter方法。