核心数据自动创建超级实体?何时何地?

时间:2013-04-19 19:59:10

标签: ios core-data nsmanagedobject

我有以下数据模型来管理测量(心率和皮肤反应) enter image description here

当我获得新的测量时,它将成为“MinuteStress”的实体 现在我想以编程方式检查是否存在相应的日期和月份实体,如果没有自动创建,则将我的测量值添加到其平均值。

我的第一个问题是:检查超级实体的正确位置在哪里?在“MinuteStress”的NSManagedObjectSubclass中执行此操作是一个好主意,还是在我的viewcontroller中创建实体后更好?

我的第二个问题是,如果有一种聪明的方法可以从子实体创建超级实体吗?

1 个答案:

答案 0 :(得分:0)

理论上你可以在你的awakeFromInsert子类的NSManagedObject方法中做到这一点,但那是一个坏主意(tm),因为你可以触发其他核心数据事件......请参阅“特殊注意事项” “the Apple Docs awakeFromInsert下的部分了解详情。

最好在视图控制器中查询超类并在需要时创建它们,然后创建MinuteStress实例。

您可能还想编写一些方便的方法来创建相关的子对象(例如,在MonthStress上为-(DayStress *) createDayStress]),您可以在其中创建子对象并在返回之前自动设置其父引用(以及任何初始化值) 。它使视图控制器中的代码流更好IMO。