假设我使用coreData在数据库中插入了多个实体。我没有保存。如果我没有引用它们,如何删除所有未保存的插入实体?删除核心数据中的所有未提交实体
好吧,我怎么看,我不能使用[context rollback]
当context.undoManages
是nil
?那很糟。 但是在[context reset]
之后我应该如何处理所有的参考和对象?如果他们在数据源中使用,接口会发生什么?我崩溃了?
假设我使用coreData在数据库中插入了多个实体。我没有保存。如果我没有引用它们,如何删除所有未保存的插入实体?删除核心数据中的所有未提交实体
好吧,我怎么看,我不能使用[context rollback]
当context.undoManages
是nil
?那很糟。 但是在[context reset]
之后我应该如何处理所有的参考和对象?如果他们在数据源中使用,接口会发生什么?我崩溃了?
[managedObjectContext rollback]
将恢复所有未保存的更改。
这是CoreData's
NSManagedObjectContext
类的用途。它允许您在“便签簿”中执行您所做的更改,这些更改只针对您选择的任何目的。如果你愿意,你可以[context save]
。或者,如果你决定要折腾的事...
[context rollback];
如果使用父/子的NSManagedObjectContext的,那么你可以只创建的NSManagedObjectContext的新实例,并重新分配其父。
如果你没有,那么你可以使用实例方法复位:
文档: 复位
返回接收到它的基本状态。
- (void)reset
所有接收方的管理对象是“忘了。”如果你用这种方法,你应该确保您还使用接收器取出丢弃任何管理对象的引用,因为他们将是无效之后。
如果'context.undoManager'为'nil'值是可能的吗? –