0

私のアプリには、親オブジェクトと子オブジェクトを持つ典型的な Core Data バックエンドがありNSManagedObjectContextます。

NSManagedObjectContextmoc1には があり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];
};
4

1 に答える 1