Основные данные, KVO и NSInternalInconsistencyException - PullRequest
1 голос
/ 09 июля 2010

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

Здесь я сталкиваюсь с проблемами. Когда пользователь вносит изменения в отдельный 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 Ответ

1 голос
/ 09 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...