Так что я почти понял эту вещь, но я обрушился на NSFetchedResultsChangeUpdate, когда я обновляю свой managedObjectContext из подробного представления, которое было введено после поиска в таблице.NSFetchedResultsChangeUpdate сбой при вызове в обычном табличном представлении
У меня есть табличное представление, созданное из набора данных ядра. Я могу ввести подробный вид из этой таблицы и внести изменения без каких-либо проблем. Я также могу выполнять поиск в таблице и вносить изменения САМОМ времени без каких-либо проблем. Однако на некоторых объектах я получаю «Исключение было обнаружено во время обработки изменений Core Data».
Я отследил это до NSFetchedResultsChangeUpdate. Я использую следующий код:
case NSFetchedResultsChangeUpdate:
if (searchTermForSegue)
{
NSLog(@"index info:%@.....",theIndexPath);
NSLog(@"crashing at the next line");
[self fetchedResultsController:self.searchFetchedResultsController configureCell:[tableView cellForRowAtIndexPath:theIndexPath] atIndexPath:theIndexPath];
break;
} else {
[self fetchedResultsController:controller configureCell:[tableView cellForRowAtIndexPath:theIndexPath] atIndexPath:theIndexPath]; }
break;
Когда стол не разыскивается, он запускает метод еще и работает 100% времени. Когда таблица выполняется поиск, она запускает if (searchTermForSegue) и работает большую часть времени, но не всегда. Я запустил theIndexPath и обнаружил следующее:
Когда он работает, theIndexPath правильно сообщает объекты indexPat, когда он терпит неудачу, вызывается неправильный вызов IndexPath. Например, если я делаю поиск, который сужает Tableview до 3-х секций, 2 шт в первой, 1 в секунду, 1 в третьих, я получаю следующее NSLog:
On first object: index info:<NSIndexPath 0xb0634d0> 2 indexes [0, 0].....
on second object: index info:<NSIndexPath 0xb063e70> 2 indexes [0, 1].....
on third object: index info:<NSIndexPath 0xb042880> 2 indexes [1, 0].....
but on the last object: index info:<NSIndexPath 0x9665790> 2 indexes [2, 17].....
следует вызова [2, 0 ]
Обратите внимание, что я просто обновляю эти объекты, не удаляя их и не добавляя новые.
Любые мысли будут оценены!