删除UITableView房间错误

删除UITableView房间错误,uitableview,core-data,xcode7,Uitableview,Core Data,Xcode7,尝试删除TableView项时出现以下错误 由于未捕获异常而终止应用程序 'NSInternalInconsistencyException',原因:'无效更新:无效 节0中的行数。表中包含的行数 更新(4)后的现有节数必须等于 更新(4)之前该节中包含的行,加号或减号 从该节插入或删除的行数(插入0, 1)并加上或减去移入或移出的行数 该部分(0移入,0移出)。' 我正在使用以下代码: override func tableView(tableView: UITableView, commit

尝试删除TableView项时出现以下错误

由于未捕获异常而终止应用程序 'NSInternalInconsistencyException',原因:'无效更新:无效 节0中的行数。表中包含的行数 更新(4)后的现有节数必须等于 更新(4)之前该节中包含的行,加号或减号 从该节插入或删除的行数(插入0, 1)并加上或减去移入或移出的行数 该部分(0移入,0移出)。'

我正在使用以下代码:

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

if editingStyle == .Delete {

    let roomToDelete : House = self.frc.objectAtIndexPath(indexPath) as! House
    moc.deleteObject(roomToDelete)

    do {
        try moc.save()
      } catch {
        print("Failed to save upon delete")
        return
     }

   tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
   self.tableView.reloadData()

   }

}

如果我关闭最后两行代码,那么我不会得到错误,但是这一行不会删除,因为我只是从核心数据中删除数据。如果我离开桌子回来,电话线就没了。我假设错误是因为我没有将行删除与节中的行数联系起来,所以存在不匹配。我所做的所有搜索都与我所做的编程类似。

您应该将视图控制器设置为FRC委托,并使用委托方法更新表视图。由于FRC是您的数据源,它必须知道删除情况,以便更新行数


在提交方法中,您应该只是从上下文中删除对象。您不应该从表中删除行或重新加载表(这应该由FRC委托方法完成)。

我可以通过-

1) 移除

tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
从“提交编辑样式”功能和

2) 添加


在viewDidLoad函数的末尾

您是否为FRC设置了委托并实现了相关的方法?
self.tableView.reloadData()