私は 2 つの永続ストアを使用します。1 つ目はデフォルト (組み込み) アプリのデータの読み取り専用で、2 つ目はユーザー データの読み取り/書き込みです。この問題は、ユーザーが 2 番目のストアにデータを追加すると発生します。この場合、 NSFetchedResultsControllerのperformFetch:メソッドの実行中に、デバッグ コンソールに次のメッセージが表示されます。
CoreData: error: batched fetch request asked to fetch 1 objects but
received 2 objects as (
"entity: Product; id: 0xd000000000340002 <x-coredata://A570FA00-5B60-4C21-A9B1-8A49C2AAC58B/Product/p13> ; data: <fault>)",
"entity: Product; id: 0xd000000000340004 <x-coredata://84F31C0F-844D-44DD-BB2F-CC766BED8331/Product/p13> ; data: <fault>)"
)
Managed ObjectID の最後の部分が同じであるため、CoreData が状況をエラーとして解釈することは明らかです。
Product/p13
何らかの理由で、CoreData は、これらのオブジェクトが異なるストアからのものであることを考慮していません: A570FA00-5B60-4C21-A9B1-8A49C2AAC58Bおよび84F31C0F-844D-44DD-BB2F-CC766BED8331に対応します。
コンソールのエラー メッセージを除いて、すべて正常に動作します。でも見ないほうがいいです。このような異なるストアの ObjectID の衝突を解決する方法を知っている人はいますか?