私のコードは次のようになります。
dispatch_async(background_save_queue, ^{
NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];
[context setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
[context setPersistentStoreCoordinator:coordinator];
[[NSNotificationCenter defaultCenter] addObserver:mainContext selector:@selector(mergeChangesFromContextDidSaveNotification:) name:NSManagedObjectContextDidSaveNotification object:context];
//code to create objects with core data in context ("context" variable)
[context save:nil];
[context release];
}
また、マルチスレッドを使用しない (コンテキストが 1 つだけの) 同様のコードは、はるかにうまく機能します。
私のコードは間違っていますか?また、コア データ オブジェクトをマルチスレッドで埋める他の例はありますか?