私のアプリには、親オブジェクトと子オブジェクトを持つ典型的な Core Data バックエンドがありNSManagedObjectContext
ます。
親NSManagedObjectContext
のmoc1には がありNSMainQueueConcurrencyType
ます。
子moc2NSManagedObjectContext
には.NSPrivateQueueConcurrencyType
moc1を監視するオブジェクトXもあります。この通知は必ずメイン スレッドに届きます。NSManagedObjectContextObjectsDidChangeNotification
質問:バックグラウンド キューでmoc2に変更が加えられ、呼び出されたとし[moc2 save:]
ます。NSManagedObjectContextObjectsDidChangeNotification
次に、メイン スレッド上のオブジェクト X にメッセージを送信し、受信前ではなく受信後に確実に受信されるようにするにはどうすればよいでしょうか。呼び出すだけで十分ですか:
[moc2 save:NULL]; // causes X to get NSManagedObjectContextObjectsDidChangeNotification for moc1...eventually
dispatch_async(dispatch_get_main_queue(), ^{
[X iHopeYouGetThisAfterYouGotTheNotification];
};