在我的Core Data模型中,我有一个属性是NSDate,用户可以更改它,它是可选的。 我想将此属性的默认值设置为今天,我在核心数据模型中看不到这样做,因此我将NSManangedObject子类化并将此代码添加到实现文件中。
- (NSDate *)date {
return [NSDate date];
}
这似乎有效但日期总是今天的日期,即使用户更改它,它也会回到今天。如果昨天创建了一个对象,它会将日期更改为今天,以便所有对象的日期都是今天。
如何解决此问题,用户今天的默认日期是否仍然可以更改?
答案 0 :(得分:9)
“date”也是该物业的名称吗?如果是这样,那么您的代码将始终返回当前日期,因为您将覆盖属性方法。
要为属性设置自定义默认值,可以覆盖awakeFromInsert方法。在该方法中,将属性值设置为[NSDate date]。有关此方法的说明,请参阅NSManagedObject的文档。
答案 1 :(得分:2)
您可以将模型内部的默认值设置为“TODAY”或“NOW”,并在创建该实体的实例时自动设置。