0

時,我在想,如果這種代碼將確定使用它是安全的NSManagedContext對象保存操作執行使用Objective-C快速列舉

NSManagedObjectContext *moc = [(AppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
for (NSDictionary *dict in objects) { 
      Object *object = [NSEntityDescription insertNewObjectForEntityForName:@"object" 
                inManagedObjectContext:moc]; 
      // Populate model fields with appropriate dictionary keys 
     } 

原因,我問的是你是建議不要跨線程傳遞對管理對象上下文對象的引用,並想知道這是否確實是在這裏發生的事情。

回答

3

使用for (object in collection)無關與線程快速枚舉。所有這些代碼都在同一個線程上運行。

0

如果插入操作線程,你應該考慮創建一個背景執行的NSManagedObjectContext來處理它,這是一個後太大了,並回答了在SO之前。

performBlock:

0

您正在使用一個ManagedObjectContext,在您的代碼中沒有線程問題。你做的是正確的方式。所有的代碼都是順序的。 如果你想使用多個上下文,每個線程中的一個,你應該照顧多線程。