从tableview

时间:2017-07-15 20:15:20

标签: ios swift uitableview core-data swift3

我正在使用核心数据来填充表格视图单元格。我正在尝试实现一个删除单元格的函数但是我一直收到此错误

  

断言失败 - [UITableView _endCellAnimationsWithContext:],/ BuildRoot / Library / Cache / com.apple.xbs / Source / UIKit_Sim / UIKit-3600.6.21 / UITableView.m:1610   2017-07-15 22:07:51.077恼人的闹钟 - 闹钟无法暂停或停止![7608:793341] ***由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:& #39;无效更新:第0节中的行数无效。更新后的现有部分中包含的行数(1)必须等于更新前该部分中包含的行数(1),

我的视图控制器代码如下

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

    if editingStyle == .delete {

        let cell = tableView.cellForRow(at: indexPath) as! AlarmCell
        let identifier = cell.time.text

        for object in self.controller.fetchedObjects!{
            if object.timeTitle == identifier {
                print("HELLO!")

               print("deep inside if")
               context.delete(object)
                ad.saveContext()
                tableView.deleteRows(at: [indexPath], with: .fade)
                //tableView.reloadData()

            }
        }

    }

}

核心日期部分工作正常,当我重新打开应用程序时,单元格确实消失了。我的问题是当我实际按下删除

tableView.deleteRows(at: [indexPath], with: .fade) 

函数抛出上面显示的错误。当我发表评论时,没有发生崩溃,但是除非我转到另一个视图然后回到这个视图,否则不会删除单元格。

1 个答案:

答案 0 :(得分:1)

错误表示删除行后应从阵列中删除并更新阵列。然后你应该重新加载你的tableview,以便你的tableviews numberofrows得到更新