我正在使用核心数据来填充表格视图单元格。我正在尝试实现一个删除单元格的函数但是我一直收到此错误
断言失败 - [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)
函数抛出上面显示的错误。当我发表评论时,没有发生崩溃,但是除非我转到另一个视图然后回到这个视图,否则不会删除单元格。
答案 0 :(得分:1)
错误表示删除行后应从阵列中删除并更新阵列。然后你应该重新加载你的tableview,以便你的tableviews numberofrows得到更新。