如何保存创建Core Data对象的日期和时间

use*_*485 17 iphone cocoa-touch core-data

我想保存并检索当前时间(如果今天)或在Core Data中创建的注释的日期

请指导我如何做到这一点.

Chr*_*son 51

您可以通过覆盖-awakeFromInsert方法将自定义NSManagedObject子类设置为上下文中的属性:

@interface Person : NSManagedObject
@property (nonatomic, copy) NSDate *creationDate; // modeled property
@end

@implementation Person
@dynamic creationDate; // modeled property

- (void)awakeFromInsert
{
    [super awakeFromInsert];

    self.creationDate = [NSDate date];
}
@end
Run Code Online (Sandbox Code Playgroud)

请注意,creationDate上面是Core Data属性类型"date"的建模属性,因此它的存取方法是自动生成的.确保也适当地设置实体的自定义NSManagedObject类名.

  • 我更喜欢这种方法,特别是因为我在其中创建了一个带有此属性的抽象类.这样,使用创建/修改值的所有模型都可以使用非常少的代码自动处理. (2认同)

Ric*_*kiG 10

创建名为Note的Core Data实体,为其指定一个名为timeStamp的属性 将其设置为Date.

创建新Note时为其指定当前时间:

[note setTimeStamp:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)

坚持注意,就是这样.

  • 问题是,每次打开一个新笔记时,你都必须记住这样做.awakeFromInsert是一个更好的地方 (2认同)