2013-12-11 4 views
0

У меня есть два NSFetchedResultsControllers в моем приложении, и они выполняют ту же выборку. то есть запрос выборки, managedObjectContext, sectionNameKeyPath и cacheName двух фрк точно совпадают. Однако они возвращают два разных набора управляемых объектов в качестве извлеченных объектов. Одним из них является:Два NSFetchedResultsControllers с тем же запросом выборки не возвращают одни и те же извлеченные объекты

<_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 , я ожидал две выборки объектов массивы содержат одни и те же управляемые объекты.

Что может быть неправильным? Благодаря!

Обновление: Я заметил, что два обстрелянных МО - это одно и то же, но ошибки различны.

+0

Но полученных значения одинаковы? Didi вы проверяете это на консоли? Покажите нам запросы. –

ответ

0

Проблема решена. Я думаю, это проблема кеширования. Есть два способа:

  1. сделать performFetch на обоих NSFetchedResultsControllers перед обращением fetchedObjects массива

  2. установить делегат для обоих NSFetchedResultsControllers

Смежные вопросы