現在、アプリには 2 つのコンテキストがあります。私のアプリは複数のタブを使用しているため、1 つのタブにデータが表示され、別のタブがデータ入力モードになっている可能性があります。
ほとんどのデータを表示用に読み取るために使用するメイン コンテキストが 1 つあります。データを挿入するとき、他のタブの操作でコンテキストに追加された不完全なオブジェクトを保存したくないため、2 番目の一時コンテキストを使用しています。
私はりんごの同時実行ガイドを読んでいます: http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/coredata/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385-SW1
これは、通知を使用してコンテキスト間で変更を伝達する必要があることを示しています。
両方のコンテキストで同じ伝播ストア オブジェクトを使用しています。私の質問は、タブ A でコンテキスト A に変更が加えられた場合、コンテキスト B を使用してタブ B でフェッチ要求が再発行された場合、変更は単にタブ B に表示されるのでしょうか?
これは私が今見ているものです。コア データのキャッシュは、伝播ストア レベルで行われると思いますか? それが正しい場合、コンテキストの同期は、フェッチ クエリを再実行する予定がない場合にのみ必要なので、変更された NSManagedObjects のみを選択的に更新できますか?
これは、新しいコンテキストを取得する方法です。
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
NSManagedObjectContext *newContext;
if (coordinator != nil) {
newContext = [[NSManagedObjectContext alloc] init];
[newContext setPersistentStoreCoordinator:coordinator];
}