Ошибка происходит при удалении ячейки с анимацией - PullRequest
1 голос
/ 03 февраля 2012
[[PeopleManager shared] removePersonAtIndex:indexPath.row withGroupIndex:currentGroupIndex];

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation: UITableViewRowAnimationNone];

У класса PeopleManager есть массив людей (NSMutableArray).

Моя ошибка не является ошибкой значения индекса.

Работает нормально 99,9% без ошибок. Но иногда возникает ошибка

Код ошибки

2012-02-03 17: 17: 53.232 Телефонная книга [343: 707] * Ошибка подтверждения в - [UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit/UIKit-1912.3/UITableView.m:1046 2012-02-03 17: 17: 53.239 Телефонная книга [343: 707] * Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: 'Неверное обновление: недопустимое количество строк в разделе 0. Количество строки, содержащиеся в существующем разделе после обновления (1) должны быть равно числу строк, содержащихся в этом разделе перед update (1), плюс или минус количество строк, вставленных или удаленных из этот раздел (0 вставлено, 1 удалено) и плюс или минус количество строки перемещены в или из этого раздела (0 перемещены, 0 перемещены). ' прекратить называется броском исключения

Как это можно исправить ??? Я прочитал код ошибки. Но я не знаю, как это исправить ...

1 Ответ

0 голосов
/ 03 февраля 2012

вам следует заключить вызов deleteRows ... в пару beginUpdates и endUpdates:

[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation: UITableViewRowAnimationNone];
[tableView endUpdates];

и убедиться, что ваш метод numberOfRowsForSection: возвращает правильное обновленное значение

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