2014-02-26 53 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

所有接收方的管理對象是「忘了。」如果你用這種方法,你應該確保您還使用接收器取出丟棄任何管理對象的引用,因爲他們將是無效之後。