iOS アプリケーションで、コア データを Web バックエンドと同期しようとしています。同期に別のバックグラウンド管理オブジェクト コンテキストを使用したいので、同期の処理中にメイン コンテキストが UI からの変更を自由に受け入れられるようにします。両方のコンテキストは、このブログ投稿http://www.cocoanetics.com/2012/07/multi-context-coredata/に従って、ディスクへの書き込みコンテキストの子です。
私の質問は、ディスクに保存する前に両方の子コンテキストをマージするにはどうすればよいですか?
contextDidSaveNotifications を購読すると、次を使用してコンテキストをマージできます
[mainContext mergeChangesFromContextDidSaveNotification:syncFinishedNotification];
しかし、ドキュメントによると...「このメソッドは、他のコンテキストで更新されたオブジェクトを更新し、新しく挿入されたオブジェクトでエラーを発生させ、削除されたオブジェクトで deleteObject:: を呼び出します。」
更新されたオブジェクトを更新して mainContext に加えられた変更を失いたくはありませんが、両方の変更セットをマージします。
私はマルチコンテキストのコアデータを初めて使用するので、これを間違った方法で考えている可能性があります。
何か案は?