У меня есть следующий код, написанный для моей кнопки удаления, чтобы удалить выбранные строки из UITableView.Удаление строк вручную из UITableView в Xcode 6
-(IBAction)deleteItems:(id)sender {
NSArray *selectedCells = [self.autoCompleteView indexPathsForSelectedRows];
NSMutableIndexSet *indicesToDelete = [[NSMutableIndexSet alloc] init];
for (NSIndexPath *indexPath in selectedCells) {
[indicesToDelete addIndex:indexPath.row];
}
//arrayFromPlist is NSMutableArray
[autoCompleteView beginUpdates];
[autoCompleteView deleteRowsAtIndexPaths:selectedCells withRowAnimation:UITableViewRowAnimationAutomatic];
[autoCompleteView endUpdates];
[selectedObjects removeObjectsAtIndexes:indicesToDelete];
[autoCompleteView reloadData];
[alertMsg deleteConfirmation:@"Do you want to delete these items?"];
}
Пожалуйста, проверьте изображение для моего UITableView и кнопка удаления. Я сохранил свойство «Редактирование» моего UITableview «Множественный выбор во время редактирования» в раскадровке.
Я получаю следующее сообщение об ошибке, когда я нажмите кнопку Удалить, показанную на экране.
Завершение приложения из-за неотображенного исключения «NSInternalInconsistencyException», причина: «Неверное обновление: недопустимое количество строк в разделе 0. Количество строк, содержащихся в существующем разделе после обновления (5), должно быть равно числу строк, содержащихся в этом разделе перед обновлением (5), плюс или минус количество строк, вставленных или удаленных из этого раздела (вставлено 0, 2 удалено) и плюс или минус количество строк, перемещенных в или из этого раздела (0 переместился, 0 отошел).
Не уверен, что такое моя ошибка в коде кнопки удаления.
@matt ... Я положил [selectedObjects removeObjectsAtIndexes: indicesToDelete]; ниже BeginUpdates, но все равно получите ту же ошибку, что и в вопросе. – TheGaME
Я не знаю, что такое 'selectedObjects' или как поддерживается ваша модель. Но вы должны удалить строки из модели, прежде чем запускать «beginUpdates». – matt
У меня есть 2 изменяемых массива: selectedObjects будет содержать элементы для удаления, а autoCompleteData содержит исходные данные, которые будут отображаться в виде таблицы. – TheGaME