Ответ 1
Вы можете использовать "сейчас" в модели, но Core Data оценивает это во время компиляции, а не во время выполнения. Вы получите дату компиляции, хранящуюся в ваших стандартах по умолчанию, что, вероятно, не то, что вы хотите:
http://iphonedevelopment.blogspot.com/2009/07/core-data-default-dates-in-data-model.html
Самый надежный способ гарантировать значение свойства по умолчанию для текущей даты - переопределить -awakeFromInsert
в подклассе NSManagedObject и назначить там текущую дату.
- (void) awakeFromInsert
{
[super awakeFromInsert];
self.date = [NSDate date];
// or [self setPrimitiveDate:[NSDate date]];
// to avoid triggering KVO notifications
}
Примечание. Если вы используете вложенные контексты управляемых объектов (или UIManagedDocument), вышеуказанное не будет работать должным образом. Этот совет применяется только при использовании контекстов с одним управляемым объектом.