2014-02-26 56 views
-1

假设我使用coreData在数据库中插入了多个实体。我没有保存。如果我没有引用它们,如何删除所有未保存的插入实体?删除核心数据中的所有未提交实体

好吧,我怎么看,我不能使用[context rollback]context.undoManagesnil?那很糟。 但是在[context reset]之后我应该如何处理所有的参考和对象?如果他们在数据源中使用,接口会发生什么?我崩溃了?

回答

1
[managedObjectContext rollback] 

将恢复所有未保存的更改。

+0

如果'context.undoManager'为'nil'值是可能的吗? –

1

这是CoreData'sNSManagedObjectContext类的用途。它允许您在“便签簿”中执行您所做的更改,这些更改只针对您选择的任何目的。如果你愿意,你可以[context save]。或者,如果你决定要折腾的事...

[context rollback]; 
1

如果使用父/子的NSManagedObjectContext的,那么你可以只创建的NSManagedObjectContext的新实例,并重新分配其父。

如果你没有,那么你可以使用实例方法复位

文档复位

返回接收到它的基本状态。

- (void)reset

所有接收方的管理对象是“忘了。”如果你用这种方法,你应该确保您还使用接收器取出丢弃任何管理对象的引用,因为他们将是无效之后。