删除UITableView中的行

时间:2011-03-27 21:25:33

标签: iphone objective-c cocoa-touch

我正在尝试从列表中删除一行。但是每次我这样做时程序都会崩溃。

- (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返回的行数?如果是这种情况,我该怎么做呢。

感谢。

1 个答案:

答案 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];
    }
}