【问题标题】:Two NSFetchedResultsControllers with the same fetch request doesn't return the same fetched objects具有相同获取请求的两个 NSFetchedResultsController 不会返回相同的获取对象
【发布时间】:2013-12-11 11:15:52
【问题描述】:

我的应用中有两个 NSFetchedResultsController,它们执行相同的提取。即两个frc的fetch request、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 是相同的,但故障不同。

【问题讨论】:

  • 但是检索到的值是一样的吗? Didi 你在控制台中检查了这个?向我们展示请求。

标签: core-data


【解决方案1】:

问题解决了。我想这是一个缓存问题。基本上有两种方式:

  1. 在访问 fetchedObjects 数组之前对两个 NSFetchedResultsControllers 执行一次 performFetch

  2. 为两个 NSFetchedResultsControllers 设置一个委托

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    相关资源
    最近更新 更多