键值观察与NSManagedObjectContextObjectsDidChangeNotification

时间:2012-09-14 01:42:06

标签: ios core-data nsmanagedobjectcontext key-value-observing

我正在开发一个购物清单应用程序,我有几个案例需要关注实体的更改,并通过对其他实体进行更改来做出响应。例如:

添加新商店实体时,我需要创建相关的过道实体。

当食物项目的数量变为0或> 0时,我需要在项目上设置相关的状态标志(ftr,标志有两个以上的状态,我不能只是放下标志和测试0)。

根据我到目前为止所读到的内容,选择似乎是在使用键值观察和&注册NSManagedObjectContextObjectsDidChangeNotification。我不确定哪个更适合我的场景(或者我应该覆盖相关实体类中的相应方法)。关于何时使用这些内容的任何指针和/或文档都将非常感激。

2 个答案:

答案 0 :(得分:3)

如果标志是数量信息中的一种派生属性,那么最好的方法可能是覆盖托管对象子类中数量的setter并更新那里的标志。由于标志是模型属性,因此在模型中保持其值的责任是有意义的,而不是在视图控制器或使用KVO或响应通知的其他非模型对象中。

答案 1 :(得分:0)

您可以使用NSFetchedResultsController代替通知。此外,您可以修改实体以使用类方法添加这些新记录,并管理您需要执行的任何其他修改。