Tim*_*ean 4 core-data objective-c iphonecoredatarecipes ios
我有一个带有updatedOn属性的NSManagedObject类.我希望实现逻辑以在类的willSave方法中设置它的值.当我尝试这样做时,我发现在我的这个类的实例上从未调用过willSave.
经过一些调查,我确定willSave没有为新创建的实例调用该方法,其中updatedOn没有初始化为任何值.由于此属性未设置为可选,因此验证失败,显然willSave只有在实例有效时才会调用该方法.
我的问题是:做这种事是否有最好的做法?我是否需要使updatedOn属性可选以解决此问题?或者我应该实现awakeFromInsert我的类的方法在那里设置初始值,然后在willSave最终调用方法时覆盖该值?或者是否有一些更简单的方法更有意义?
该willSave文档提到了使用该方法进行时间戳,尽管提到了有关更改属性值和递归的一些复杂情况,但它并未特别针对此用法发出警告.所以我想,基于这个事实,它可以被认为是放置此功能的合理位置.
但是,文档确实指的是NSManagedObjectContextWillSaveNotification用于计算公共时间戳的用法 ,因此这可能是此工作的替代位置.它需要手动检查insertedObjects和updatedObjects集合managedObjectContext以找到需要时间戳的对象,但基于一些快速测试,它似乎在验证步骤之前调用,因此您将有机会在此处设置所需的属性.
如果你选择坚持,willSave那么我猜你有3个选择.
我认为任何选项都是合理的选择,但我认为如果是我,我可能会NSManagedObjectContextWillSaveNotification因为在willSave中设置属性值的复杂性而选择.
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |