Iphone核心数据:日期默认值为当前日期

时间:2010-09-22 13:34:45

标签: iphone xcode core-data

我正在使用核心数据。我有一个具有Date类型属性的实体。有没有办法将默认值设置为当前日期? (比如输入'CURRENTDATE'或属性的默认值?)

谢谢

1 个答案:

答案 0 :(得分:34)

您可以在模型中使用“now”,但Core Data会在编译时评估它,而不是运行时。您将获得存储在模型默认值中的编译日期,这可能不是您想要的:

http://iphonedevelopment.blogspot.com/2009/07/core-data-default-dates-in-data-model.html

确保当前日期的默认属性值的最可靠方法是覆盖NSManagedObject子类中的-awakeFromInsert并在那里分配当前日期。

- (void) awakeFromInsert 
{
   [super awakeFromInsert];
   self.date = [NSDate date];
   // or [self setPrimitiveDate:[NSDate date]]; 
   // to avoid triggering KVO notifications

}

注意:如果您正在使用嵌套的托管对象上下文(或UIManagedDocument),则上述操作将无法按预期工作。此建议仅适用于使用单个托管对象上下文时。