1

Я использую Core Data и KVO для поиска изменений значений для запуска сохранения в хранилище данных. У меня есть табличный вид с поиском, подключенным до NSFetchedResultsController. Когда поиск меняется, при нажатии кнопки «Поиск» выполняется новый контроллер результатов. Когда пользователь выбирает элемент в представлении таблицы результатов, пользователь вводит подробное представление и может вносить изменения.Основные данные, KVO и NSInternalInconsistencyException

Здесь я столкнулся с проблемами. Когда пользователь вносит изменения в отдельный UIControl, который я сделал, подробное представление уведомляется и может использовать NSFetchedResultsController, который он запоминает, когда представление таблицы переместило меня в стек представления, чтобы получить NSManagedObjectContext и сделать сохранение. Когда я делаю так, я иногда получаю следующее сообщение об ошибке:

Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. no object at index 89 in section at index 0 with userInfo (null) 
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no object at index 89 in section at index 0' 

я обнаружил, что это, как правило, происходит, когда я делаю поиск и объект, а не на верхней части таблицы перемещается к вершине , Я смутно знаю, что может быть неправильно в затылке, но буду признателен за любые указания относительно того, как это исправить.

ответ

1

Я понял, что случилось. Я забыл отменить старого делегата NSFetchedResultsController, а также забыл выпустить NSFetchedResultsController. Мой подкласс UITableView также ответил на обновления NSFetchedResultsController через делегатов и вызвал странные вызовы.

+0

Рад видеть, что вы решили проблему. Эта проблема довольно распространена и легко забывается :) –

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

  • Нет связанных вопросов^_^