我正在尝试从列表中删除一行。但是每次我这样做时程序都会崩溃。
- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[self.logList removeObjectAtIndex:[indexPath row]];
[tv deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
例外:
由于未捕获的异常而终止应用 'NSInternalInconsistencyException', 原因:'无效更新:无效 第0节中的行数 一个包含的行数 更新后的现有部分(5) 必须等于行数 包含在该部分之前 更新(5),加号或减号 从中插入或删除的行数 部分(0插入,1删除)。'
那么有人能指出我正确的方向吗?我是否有必要更新datasource-method返回的行数?如果是这种情况,我该怎么做呢。
感谢。
答案 0 :(得分:0)
尝试类似的东西:
- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[tv beginUpdates];
[tv deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.logList removeObjectAtIndex:[indexPath row]];
[tv endUpdates];
}
}