Ошибка просмотра таблицы при удалении строки, которая встречается крайне редко - Core Data и FetchedResultsController - PullRequest
0 голосов
/ 02 сентября 2018

Я использую табличное представление, которое заполняется NSFetchedResultsController. В таблице приведены списки. Сущность списков связана с задачами один ко многим. Затем существует сущность примечания, которая имеет отношение один к одному с задачами. После введения сущности заметки и связи с задачами я получаю эту ошибку утверждения

ошибка: серьезная ошибка приложения. Исключение было обнаружено во время обработки изменений Core Data. Обычно это ошибка в наблюдателе NSManagedObjectContextObjectsDidChangeNotification. Неверное обновление: недопустимое количество строк в разделе 0. Число строк, содержащихся в существующем разделе после обновления (1), должно быть равно количеству строк, содержащихся в этом разделе до обновления (3), плюс или минус число из строк, вставленных или удаленных из этого раздела (0 вставлено, 1 удалено) и плюс или минус количество строк, перемещенных в или из этого раздела (0 перемещено, 0 перемещено). с userInfo (ноль) CoreData: ошибка: серьезная ошибка приложения. Исключение было обнаружено во время обработки изменений Core Data. Обычно это ошибка в наблюдателе NSManagedObjectContextObjectsDidChangeNotification. Неверное обновление: недопустимое количество строк в разделе 0. Число строк, содержащихся в существующем разделе после обновления (1), должно быть равно количеству строк, содержащихся в этом разделе до обновления (3), плюс или минус число из строк, вставленных или удаленных из этого раздела (0 вставлено, 1 удалено) и плюс или минус количество строк, перемещенных в или из этого раздела (0 перемещено, 0 перемещено). с userInfo (ноль) 2018-09-02 12: 41: 37.856931 + 0500 List24 [26505: 860491] * Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Неверное обновление: недопустимое количество строк в разделе 0. Количество строк содержится в существующем разделе после обновления (1) должно быть равно числу строк, содержащихся в этом разделе до обновления (3), плюс или минус количество строк, вставленных или удаленных из этого раздела (0 вставлено, 1 удалено) и плюс или минус количество строк, перемещенных в или из этого раздела (0 перемещено, 0 перемещено). ' * Первый стек вызовов вызовов:

Эта ошибка никогда не возникала раньше. Однако это действительно редко. Произошло всего лишь два раза, но я понятия не имею, что это вызывает.

Примечания имеют непосредственное отношение к задачам. И удаление происходит каскадно между списками и задачами. Так что, если я удаляю списки, это должно удалять задачи, и это должно также удалять заметки.

Любые предложения или советы, которые я могу сделать, чтобы попытаться исправить это раз и навсегда. Спасибо!

1 Ответ

0 голосов
/ 03 сентября 2018

Неверное обновление: недопустимое количество строк в разделе 0.

Количество строк, содержащихся в существующем разделе после обновления (1), должно быть равно количеству строк, содержащихся в этом разделе до обновления (3), плюс или минус количество строк, вставленных или удаленных из этого раздела. (0 вставлено, 1 удалено) и плюс или минус количество строк, перемещенных в или из этой секции (0 перемещено, 0 удалено).

Похоже, для UITableView (я полагаю, iOS) требуется, чтобы, если вы используете .beginUpdates() и .endUpdates(), вы должны были позвонить tableView.deletedRows(..) и назначить ровно столько времени, сколько потребуется позже. соответствуют тому, что вы возвращаете с numberOfRows(..).

...