У меня есть табличное представление, которое находится в контроллере представления, который наследуется от UITableViewController.
Я использую NSFetchedResultsController, который я использую для извлечения данных таблицы из моего основного хранилища данных.Я пробовал его как с включенным, так и с отключенным кэшированием.
Я установил делегат NSFetchedResultsController на self, и я реализовал controllerDidChangeContent в своем контроллере представления.
Я всегда реализовывалфункции делегата табличного представления, включая commitEditingStyle, который вызывается, когда пользователь удаляет строку.
Вот что происходит.Пользователь проводит и удаляет строку, и commitEditingStyle вызывается, как и ожидалось.В этой функции я изменяю свои основные объекты данных таким образом, чтобы они эффективно удалялись из результатов.Другими словами, если вы выполните запрос, который я передал NSFetchedResultsController снова, эта строка больше не будет в наборе результатов.
Одного этого недостаточно, поэтому я добавил вызываемый tableView reloadData в конце commitEditingStyle.Все еще не повезло, поэтому я добавил кнопку обновления, которая вызывает reloadData и это тоже не помогает.Переход к другому контроллеру представления (нажатием кнопки «назад») и возвращение на страницу обычно не работает, но в конечном итоге это выясняется, и строка исчезнет правильно.Конечно, перезапуск программы с нуля всегда работает, но как мне заставить мой tableView корректно обновляться?controllerDidChangeContent никогда не вызывается, кстати.Я думал, что reloadData будет достаточно, но это не так.