将CoreData更改传播到相关对象

时间:2014-01-27 19:57:20

标签: ios objective-c core-data nsmanagedobject

是否有办法更改对象的属性" alert"相关对象?

我们的结构如下:

  • Image有一个名为content
  • 的属性
  • CategoryImage
  • 有一对一的关系

如果相关Image可以检测到Category对象中的属性更改,Category将包含在NSUpdatedObjectsKey中,那将是理想的选择} NSManagedObjectContextObjectsDidChangeNotification。我已经看到了一些建议,表明向needsUpdate添加Category之类的标记属性是一种很好的方法,但这似乎是一种处理此问题的麻烦方式。

我这样做的理由是,我需要在Category发生更改时,或者当它与Image相关的NSManagedObjectContextObjectsDidChangeNotification更改时,重新加载一个tableview。我检查Image个实例或Category个实例的更新/删除/插入对象,但Image个实例在应用程序的其他地方使用,可能与{{1}无关实例,在这种情况下重新加载tableview将是一种浪费。我可以手动遍历更新/删除/插入的对象,看看它们是否与Category相关联Image个实例,但这似乎不是最佳选择。

我发现this question与我正在尝试的相似,但它没有答案。

如果需要更多信息,或者我的问题太复杂,请告诉我。

修改:修改为希望让我更明显感兴趣的是Category了解Category对象属性中的更改,而不是关系中的更改本身。

1 个答案:

答案 0 :(得分:0)

我建议学习KVO(Key Value Observing),因为该框架是专门为此目的而设计的。使用KVO,您可以侦听特定对象的属性更改,然后对它们做出反应。

但是,我怀疑为什么你没有使用NSFetchedResultsController。这就是NSFetchedResultsController的目的。