在Core Data对象上保存观察者的干净方法?

时间:2011-09-23 12:06:42

标签: cocoa core-data key-value-observing

我想知道是否可以保存和恢复CoreData实体的keyPaths的观察者。

示例:我的managedObjectContext中有300个Employees。当我第一次为所有这些调用addObserver:..时插入它们,以便在someValue发生更改时通知某些Object。

现在我正在调用saveAction:保存。我关闭了应用程序。当我重新启动时,有什么方法可以恢复300 x addObserver?

感谢。 问候。

编辑:Aka,在取消归档CoreData实体时添加观察者的最佳方法是什么?模型类中的自定义init()?只需在for循环中获取Employee的所有实体,然后在它们上调用addObserver?

1 个答案:

答案 0 :(得分:2)

这样做的最好方法似乎是为您的Employee实体创建子类NSManagedObject并覆盖awakeFromFetch和awakeFromInsert方法。首次插入实体时会调用awakeFromInsert,因此您可以移动现有代码以将观察者添加到那里。 awakeFromFetch是您在获取时添加观察者的地方。