我使用两个持久存储:第一个是默认(内置)应用程序数据的只读,第二个是用户数据的读写。用户在第二个商店中添加任何数据时会出现此问题。在这种情况下,执行 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>)"
)
我清楚CoreData将情况解释为错误,因为Managed ObjectID的最后部分是相同的:
Product/p13
出于某种原因,CoreData没有考虑到这些对象来自不同的商店: A570FA00-5B60-4C21-A9B1-8A49C2AAC58B 和 84F31C0F-844D-44DD-BB2F -CC766BED8331 相应地。
除了控制台中的错误消息外,一切正常。但我宁愿不去看。有没有人知道如何解决这种不同的商店ObjectID的冲突?