NSManagedObject
同じスレッドで実行されている2 つ以上のNSManagedObjectContext
オブジェクト間で を共有する方法があるかどうか疑問に思っていました。
次の問題があります。アプリケーション内のすべてのコードで共有される 1 つのメイン コンテキストと、発行するリモート フェッチ要求ごとに作成されるいくつかの異なるコンテキストがあります。(リモートでフェッチし、サーバーで見つかったすべてのオブジェクトを自分の に挿入するカスタム クラスを作成しましたNSManagedObjectContext
)。これらのフェッチ要求はNSURLConnection
、異なる時間に終了する可能性のあるオブジェクトを使用するため、同時に実行される可能性があります。同じリモート オブジェクトが異なる接続によってフェッチされると、コンテキストを保存してメインのオブジェクトとマージするときに重複が発生します。(つまり、リモート ID は同じで が異なるオブジェクトobjectID
)。
考えられる解決策の 1 つは、すべてのオブジェクトが作成されるとすぐに保存 (および永続化) することですが、まだ満たされていない可能性があり、保存操作中に検証されない関係がある可能性があるため、それはできません。
コンテキスト間でオブジェクトの同じ非永続インスタンスを共有できるメソッドを本当に楽しみにしています。誰かがこの問題に遭遇し、解決策を思いついた場合は、喜んでお知らせします!