无法从UITableView中删除单元格,只能从所述单元格中删除数据

时间:2017-12-07 13:21:54

标签: swift uitableview core-data

我正在创建一个存储事件及其数据的应用程序,它在我尝试添加Core Data之前一直运行良好,从那时起,我一直遇到问题。一个是使用delete func并不真正删除tablecell,只是内部的数据。如果我尝试删除空白单元格,它什么都不做。下面是我正在使用的删除功能的代码。

此外,我的应用程序由于某种原因从这些空白单元格中的一个开始,无法删除。

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

    if editingStyle == .delete {
        PersistenceService.context.delete(events[indexPath.row])

        do {
            try PersistenceService.context.save()
            eventLog.reloadData()
        } catch let error as NSError {
            print("Could not save. \(error), \(error.userInfo)")
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您必须从数据源数组中删除上下文中的项目,强烈建议您使用deleteRows而不是重新加载整个表视图以利用动画

PersistenceService.context.delete(events[indexPath.row])
events.remove(at: indexPath.row)
eventLog.deleteRows(at: [indexPath], with: .fade)

... save context