我有以下数据模型来管理测量(心率和皮肤反应)
当我获得新的测量时,它将成为“MinuteStress”的实体 现在我想以编程方式检查是否存在相应的日期和月份实体,如果没有自动创建,则将我的测量值添加到其平均值。
我的第一个问题是:检查超级实体的正确位置在哪里?在“MinuteStress”的NSManagedObjectSubclass中执行此操作是一个好主意,还是在我的viewcontroller中创建实体后更好?
我的第二个问题是,如果有一种聪明的方法可以从子实体创建超级实体吗?
答案 0 :(得分:0)
理论上你可以在你的awakeFromInsert
子类的NSManagedObject
方法中做到这一点,但那是一个坏主意(tm),因为你可以触发其他核心数据事件......请参阅“特殊注意事项” “the Apple Docs awakeFromInsert
下的部分了解详情。
最好在视图控制器中查询超类并在需要时创建它们,然后创建MinuteStress实例。
您可能还想编写一些方便的方法来创建相关的子对象(例如,在MonthStress上为-(DayStress *) createDayStress]
),您可以在其中创建子对象并在返回之前自动设置其父引用(以及任何初始化值) 。它使视图控制器中的代码流更好IMO。