Ios 从UITableViewController中删除表格单元格是否会导致崩溃?

Ios 从UITableViewController中删除表格单元格是否会导致崩溃?,ios,uitableview,ios6,Ios,Uitableview,Ios6,我在iOS应用程序中添加了以下代码,以从UITableViewController中删除表格单元格,但在删除时出错 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ if(editingStyle == UITableViewCellEditi

我在iOS应用程序中添加了以下代码,以从UITableViewController中删除表格单元格,但在删除时出错

  -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
    if(editingStyle == UITableViewCellEditingStyleDelete){
        [self.toDoItems removeObjectAtIndex:indexPath.row];
        NSArray *indexPaths             = @[indexPath];

        [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];
    }

}
更新: toDoItems只是一个NSArray,我已经尝试了以下代码,但仍然不起作用:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
    if(editingStyle == UITableViewCellEditingStyleDelete){
        NSArray *indexPaths             = @[indexPath];

        [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];
        [self.toDoItems removeObjectAtIndex:indexPath.row];
    }

}
错误信息如下:

“NSInternalInconsistencyException”,原因:“无效更新:节1中的行数无效。更新1003之后现有节中包含的行数必须等于更新1004之前该节中包含的行数,加上或减去从该节插入或删除的行数0 inserted,0 deleted,以及加上或减去移入或移出该节的行数0 moved in,“0搬走了。”

Xcode 6.2 iOS6

我已经尝试了

问题是您从数据模型中删除了错误的对象:

[self.toDoItems removeObjectAtIndex:indexPath.row];

那太简单了。此表中有多个部分。您需要一个能够区分这些节的数据模型,并且在从表中删除相应行之前,需要从数据模型中的正确节中删除正确的行。您不能通过单独查看indexPath.row来实现这一点;您需要构造数据模型,以便同时考虑indexPath.section。

您是否尝试将tableView删除代码移到toDoItems删除代码之上?如果您的toDoItems与核心数据相关,则在删除之前,操作将导致表刷新。@Travis M请参阅更新这里有一个工作示例,演示如何从包含多个节的表中删除行:请注意,数据模型是数据对象数组的数组。因此,为了从模型中删除正确的对象,我调用[self.sectionData[ip.section]removeObjectAtIndex:ip.row]——注意这涉及到节和行。