UIManagedDocument のドキュメントで簡単に言及されています。
非同期データ書き込みをサポートするために、Core Data は実際にはネストされた管理対象オブジェクト コンテキストのペアを使用します。
それは UIManagedDocument または Core Data に固有のものですか?
同文書には、次のようにも記載されています。
必要に応じて、バックグラウンド スレッドから親コンテキストにデータを直接ロードできます。
それは、次のコードで
NSManagedObjectContext *moc = self.managedObjectContext;
[moc performBlock:^() {
Record *record = [NSEntityDescription
insertNewObjectForEntityForName:@"Record"
inManagedObjectContext:moc];
}];
最初の行を次のように置き換えるだけです
NSManagedObjectContext *moc = self.managedObjectContext.parentContext;
それを達成するには?
この親コンテキストを直接使用するのが「適切」な場所についても混乱していると思います。つまり、すでに performBlock がタスクをバックグラウンド キューにアンロードするために使用されることを意図しているように聞こえます。親コンテキストをいじる必要があるのはなぜですか?
誰かが私のためにそれをすべて明確にしてくれれば幸いです。