Сбой при удалении ячейки, которая не видна при просмотре таблицы - PullRequest
0 голосов
/ 09 мая 2018

Я получаю сообщение об ошибке в следующей строке:

[self.tableView deleteRowsAtIndexPaths:@[indexpath]] withRowAnimation:UITableViewRowAnimationFade];

Также ячейка в этом indexPath равна nil, поскольку эта ячейка таблицы не видна в табличном представлении из-за прокрутки табличного представления:

TableCell *cell = (TableCell *)[self.tableView cellForRowAtIndexPath:indexPath];

Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Недопустимое обновление: недопустимое количество строк в разделе 5. Количество строк, содержащихся в существующем разделе после обновления (25), должно быть равно количеству строк». содержится в этом разделе до обновления (28), плюс или минус количество строк, вставленных или удаленных из этого раздела (0 вставлено, 0 удалено), и плюс или минус количество строк, перемещенных в или из этого раздела (0 перемещено в , 0 переместился). '

1 Ответ

0 голосов
/ 09 мая 2018

Допустим, вы хотите удалить элемент с индексом 5 в разделе 0, ваш код будет выглядеть следующим образом, в Swift

tblList.beginUpdates()
data.remove(at: 5)
tblList.deleteRows(at: [IndexPath(row: 5, section: 0)], with: .fade)
tblList.endUpdates()

Код Objective-C будет выглядеть так,

[_tblList beginUpdates];
[data removeObjectAtIndex:5];
[_tblList deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:5 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
[_tblList endUpdates];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...