Ios 核心数据建模问题(如何基于关系更新属性?)

Ios 核心数据建模问题(如何基于关系更新属性?),ios,core-data,Ios,Core Data,我有一个实体(订单),它与一个实体项有一个对多关系,与一个实体注释有一个对多关系。如果注释的价格发生变化,或者添加了注释,则关联订单的“价格”属性必须更新 现在,我的解决方案是让所有订单对象注册NSManagedObjectContextDidChange通知,并检查所有插入/更改的对象,以查看这些对象中是否有任何对象是订单项目的注释之一。然而,这是非常低效和有问题的,并且导致了一些可以优化的性能问题,但是我开始意识到我的解决方案是有缺陷的,不一定是问题 那么,最好的方法是什么 编辑:回答Rog

我有一个实体(订单),它与一个实体项有一个对多关系,与一个实体注释有一个对多关系。如果注释的价格发生变化,或者添加了注释,则关联订单的“价格”属性必须更新

现在,我的解决方案是让所有订单对象注册NSManagedObjectContextDidChange通知,并检查所有插入/更改的对象,以查看这些对象中是否有任何对象是订单项目的注释之一。然而,这是非常低效和有问题的,并且导致了一些可以优化的性能问题,但是我开始意识到我的解决方案是有缺陷的,不一定是问题

那么,最好的方法是什么

编辑:回答Rog提出的问题:我希望传播对模型数据的更改,这些更改由视图控制器通过KVO观察。我注意到的问题是,如果与某个项目相关的票据的价格被调整,那么在核心数据中就没有工具来解释这一点。如果我对项目使用KeyPaths抽奖价格,并返回“备注”,则仅说明是否插入/删除备注,而不说明是否调整了备注价格


如果这不是核心数据,我会为note price编写自己的访问器,只说[self.item willChangeValueForKey:@“price”],self.price=x,[self.item didChangeValueForKey:@“price”];但这是不可能的,因为我不能在核心数据中使用自定义访问器,对吗?

我们可能需要更多关于代码的详细信息来提供帮助,例如,您是否正在寻找将更改传播到模型数据或UI的方法

您目前正在使用fetchedResultsController吗

在我看来,如果您的订单中包含项目,并且项目中包含注释,则对“子”属性的任何更新都将立即生效(前提是您正确设置了反向关系)


然后,如果您正在寻找相应地更新UI的方法,那么我们需要知道您当前如何使用Coredata实体获取和填充视图。

问题已修改以满足您的问题-存在FRC。