我有一个实体(Order)与实体Item有多对多的关系,它与实体注有多对多的关系。如果价格更改为备注或添加了备注,则关联订单的'价格'属性必须更新。核心数据建模问题(如何根据关系的关系更新属性?)
现在,我的解决方案是让所有Order对象注册NSManagedObjectContextDidChange通知,并检查所有插入/更改的对象,以查看这些对象中的任何一个是否是订单项目的注释之一。但是,这样做效率低下,而且很不方便,导致可以优化的几个性能问题,但我开始意识到我的解决方案是有问题的,不一定是问题。
那么,最好的办法是什么?
编辑:为了回答Rog带来的问题:我正在寻找将更改传播到模型数据,这些数据由视图控制器通过KVO观察到。我注意到的问题是,如果与某个项目相关的Note的价格被调整,则无法在Core Data中对此进行说明。如果我在物品上使用keyPathsForAffectingPrice,并返回“注释”,那么只会考虑是否插入/删除了注释,而不是在调整注释价格时。
如果这不是核心数据,我会写我自己的存取做笔记的价格,只是说[self.item willChangeValueForKey:@ “价格”],self.price = X,[self.item didChangeValueForKey:@ “价钱”];但这是不可能的,因为我不能在Core Data中执行自定义访问器,对吧?
问题修改,以满足您的问题 - 有一个FRC。 – refulgentis 2011-02-28 23:24:18