親と同じデータを持つように子管理オブジェクト コンテキストを更新する方法は?
私の知る限り、貯蓄するとき、子供は一歩、つまり親にしか行きません。しかし、フェッチするとき、フェッチは常に親と永続ストアに至るまで非常に深くなります。だから私は物事が同じになることを期待しています。
しかし、そうではありません。
他のすべての管理対象オブジェクト コンテキストの親である管理対象オブジェクト コンテキストがあります。
1 人の子供がデータを変更して保存します。親も変わります。親で executeFetchRequest を実行すると、データが変更されていることがわかります。
ただし、一部の親の子はまだ古いデータを使用しています。同じオブジェクト ID 同じデータ。どういうわけか、プロパティの値は同じままです。
親から新しいデータをリロードするように子に指示する方法は?
より正確に言うと
P が親であるとします。
子として C1 C2 C3 があるとします
次に、C1 がデータを変更してコミットします。変更は P に伝搬されます。ただし、C2 と C3 で executeFetchRequest を実行すると、古いデータがまだ表示されます。
何を与える?
たとえば、imageBlob プロパティを確認すると、次のようになります。
子:
2013-02-05 13:57:42.865 BadgerNew[78801:c07] imageBlob: <UIImage: 0x89c3c50>
2013-02-05 13:57:42.866 BadgerNew[78801:c07] imageBlob: <null>
2013-02-05 13:57:42.866 BadgerNew[78801:c07] imageBlob: <null>
2013-02-05 13:57:42.866 BadgerNew[78801:c07] imageBlob: <null>
親:
2013-02-05 13:57:42.868 BadgerNew[78801:c07] imageBlob: <UIImage: 0x114af650>
2013-02-05 13:57:42.868 BadgerNew[78801:c07] imageBlob: <UIImage: 0x8e492e0>
2013-02-05 13:57:42.868 BadgerNew[78801:c07] imageBlob: <UIImage: 0x114c79b0>
2013-02-05 13:57:42.869 BadgerNew[78801:c07] imageBlob: <UIImage: 0xa8c76e0>
これは、モック、親モック、ブロブ、URL、およびオブジェクト ID を書き留めたより包括的なバージョンです。子:
特に、メインキューのマネージド オブジェクト コンテキストを、他のすべてのマネージド オブジェクト コンテキストの親ではなく、親の別の子にしたいと考えています。一方で、mainQueue マネージド オブジェクト コンテキストにも最新の情報が必要です。私は標準的な解決策が何であるか疑問に思います。