Я искал вокруг ТАК для похожих ответов, но моя проблема кажется немного другой.
У меня есть UITableView, который связан с NSFetchResultsController. Цель состоит в том, чтобы собрать некоторые данные, добавить пару строк в контекст, и таблица автоматически обновится. Просто, правда?
init -> пустая таблица -> executeFetch -> создать несколько объектов в контексте -> делегат видит это и обновляет мою таблицу.
Я использую шаблон NSFetchResultsController для уведомления, когда текущий контекст был изменен.
Когда я запускаю это с чистой платформой Simulator / iOS, NSFetchController успешно распознает, что данные в контексте были обновлены. Но если я запускаю приложение во второй раз, я получаю следующую ошибку:
CoreData: error: Serious application error. Exception was caught during Core Data change
processing. This is usually a bug within an observer of
NSManagedObjectContextObjectsDidChangeNotification. *** -[__NSArrayI objectAtIndex:]:
index 40 beyond bounds for empty array with userInfo (null)
Сбой происходит при вызове [self.tableView beginUpdates];
В моей отладке я вижу, что '[fetchedResultsController fetchedObjects]' совершенно пуст, и я думаю, в этом проблема - не должно ли это обновляться с моими тестовыми данными, так как я изменил контекст? Я использую примеры Apple Recipe и CoreDataBooks для справки.