在 Core Data 中创建托管对象:
NSManagedObject *aManagedObject = [NSEntityDescription
insertNewObjectForEntityForName:@"Employee"
inManagedObjectContext:aContext];
要删除托管对象,请向其托管对象上下文发送消息。
[aContext deleteObject:aManagedObject];
该方法向 aManagedObject 发送消息
- (void)prepareForDeletion
这是我的问题。我正在将此数据与外部数据库同步。我有一个名为“已删除”的属性。当一个对象第一次“删除”时,我想将“已删除”属性设置为 YES,然后将其同步到被删除的外部数据库。在未来某个日期,所有“已删除”==YES 实体都将过期并真正被删除。
在 prepareForDeletion 我想测试看看是否:
- dateSynced >= dateModified
- dateSynced <= expirationDate
- “已删除” == 是
并真正删除对象,否则:
- dateModified = 现在
- “已删除” = 是
- 并使其不被删除
有没有办法让它此时不删除?
或者,我是否应该尝试使用 prepareForDeletion 覆盖 deleteObject 并创建一个新方法,例如 obsoleteObject 来设置“deleted”= YES 和 dateModified=Now 并且以后只使用 deleteObject 进行清除?