3
您不應該用快速枚舉來修改正在迭代的集合,但我不確定這是多大程度。下面的代碼並沒有給我帶來任何問題,但我不確定它是否幸運。有沒有人有明確的答案?使用快速枚舉來刪除NSManagedObject是否安全?
for(NSManagedObject *myObject in myArray) {
[myObject.managedObjectContext deleteObject:myObject];
}
所以我真的不修改數組,但我刪除從上下文,這可能只是間接地修改數組的對象,但我不知道對..
你這是什麼意思是「確保你的MOC保持清潔」? – Snowman
當您執行非常大的刪除操作時,您想要獲取對象,然後刪除它們以減少到數據庫的訪問次數。如果數量很多,您希望以較小的批次進行操作,並確保MOC釋放已刪除的對象(通過重置或使用「否」進行刷新)。一旦保存,您還需要確保所有的引用對象都不存在,因此您不會引用已刪除的對象。 –
但是不會從上下文中刪除該項目,導致它從數組中丟失,並依次修改它? – Snowman