Если я удаляю строку из моей таблицы, используя стандартную анимацию, например UITableViewRowAnimationFade
, код вылетает с этой ошибкой:
*** Завершение приложения из-за необработанного исключения
'NSInternalInconsistencyException',
причина: «Неверное обновление: недействительно
количество строк в разделе 1.
количество строк, содержащихся в
существующий раздел после обновления (4)
должно быть равно количеству строк
содержится в этом разделе до
обновление (4), плюс или минус число
из строк, вставленных или удаленных из этого
раздел (вставлено 0, удалено 1).
Если я удаляю строку анимации, удаление / удаление строки работает, но у меня больше не будет классного перехода Apple на удаление.
Вот мой код - любая помощь приветствуется. Этот метод удаления строк работал до iOS4 , не уверен, что что-то изменилось?
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// If row is deleted, remove it from the list.
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSIndexPath *path = [NSIndexPath indexPathForRow:indexPath.row inSection:0];
MyItem *myItem = [self.getItemsFetchedResultsController objectAtIndexPath:path];
[dataRepository deleteItem:myItem];
// If I comment this line out the delete works but I no longer have the animation
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView reloadData];
}
}
Хранилище данных :
-(void)deleteItem:(MyItem *)myItem {
[self.managedObjectContext deleteObject:myItem];
[self saveCurrentContext];
}