我正在开发一个使用核心数据的应用程序。在我的应用程序中,我希望每个用户都拥有相同的数据库。所以我希望所有设备共享相同的核心数据对象。
为了做到“同步”,我找到了一个关于这个答案的演示文稿,讨论了这个问题。在演示文稿中,建议我为 Core Data 中的每个对象添加“creationDate”和“modificationDate”等属性。
为此,我尝试将 NSManagedObject (MyManagedObject) 子类化,以便将这些属性添加到核心数据中的每个对象。我还创建了我拥有的每个 NSManagedObject 子类(由模型自动生成)子类 MyManagedObject。
问题是我添加到 NSManagedObject 子类中的属性不会保留在数据库中。因此,当我关闭并重新打开应用程序时,“creationDate”变为(null)。
这是我的一些代码(标题):
@interface MyManagedObject : NSManagedObject
@property (nonatomic, retain) NSDate * modificationDate;
@property (nonatomic, retain) NSDate * creationDate;
@end
这是 .m 文件:
@implementation MyManagedObject
@synthesize modificationDate, creationDate;
-(void)willSave {
[super willSave];
self.modificationDate = [NSDate date];
}
-(void)awakeFromInsert {
[super awakeFromInsert];
[self setCreationDate:[NSDate date]];
[self setModificationDate:[NSDate date]];
}
任何帮助、指导或阅读将不胜感激。我已经为此苦苦挣扎了一段时间。我需要一种比将这些属性添加到模型中的每个实体更好的方法。提前致谢
PS:我打算在服务器中有一个“真相数据库”(一个 .sqlite 文件)。同步将在服务器和 iPhone 之间进行。如演示文稿中建议的那样