如果我使用标准动画从表中删除一行,例如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];
}