我有一个NSManagedObject类,具有updatedOn
属性。我希望能够实现这个逻辑,以便在课程的willSave
方法中设置它的值。当我试图做到这一点时,我发现willSave永远不会被我的这个类的实例调用。NSManagedObject的willSave不会被无效对象调用
经过一番调查,我确定willSave
方法没有被调用新创建的实例,其中updatedOn
未初始化为任何值。由于此属性未设置为可选,因此验证失败,并且显然只有实例有效时才会调用该方法。
我的问题是这样的:有做这种事情的最佳做法吗?我是否需要使updatedOn
属性成为可选项才能解决此问题?或者我应该实现我的课程的awakeFromInsert
方法在那里设置初始值,然后在最终调用willSave
方法时覆盖该值?还是有一些更简单的方法更有意义?
感谢您的答案Rory ...我曾考虑过使用NSManagedObjectContextWillSaveNotification,但它似乎不太合适,因为只有一个实体需要时间戳,而且我会通过一组相当大的对象来搜索异味,以找到相对较少的我需要。我决定使用在awakeFromInsert中设置的必需属性,并在willSave中再次设置。这是一个轻微的烦恼,我必须将它放在两个位置,但它似乎是我可以使用的最佳方式。 – 2012-07-21 21:55:04