我的应用程序中有两个NSFetchedResultsControllers,它们执行相同的提取。即两个frcs的获取请求,managedObjectContext,sectionNameKeyPath和cacheName完全相同。 但是,它们将两组不同的托管对象作为获取对象返回。 一个是:
<_PFArray 0x175106e0>(
<Item: 0x17511360> (entity: Item; id: 0x175125e0 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p580> ; data: {resourceType = 0;}),
<Item: 0x17510fb0> (entity: Item; id: 0x17512560 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p581> ; data: <fault>),
)
另一个:
<_PFBatchFaultingArray 0x18a6fac0>(
<Item: 0x17511360> (entity: Item; id: 0x175125e0 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p587> ; data: {resourceType = 0;}),
<Item: 0x176946a0> (entity: Item; id: 0x18a7f860 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p590> ; data: <fault>),
)
根据苹果的文档, https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdFaultingUniquing.html ,我希望两个fetch对象数组包含相同的托管对象。
可能有什么不对?谢谢!
更新:我注意到两个被激活的MO是相同的,但是故障是不同的。
答案 0 :(得分:0)
问题解决了。我想这是一个缓存问题。基本上有两种方式:
在访问fetchedObjects数组之前在NSFetchedResultsControllers上执行performFetch
为两个NSFetchedResultsControllers设置委托