【发布时间】:2017-03-02 13:30:05
【问题描述】:
我有一个名称表,我正在为它们创建一个滑动和删除函数,将它们从一个数组的名称变量中删除。
我选择了与 xcode 中的教程最相似的函数并填写了它们,但是当我单击删除按钮时,我的应用程序随机崩溃。这是我的删除按钮代码:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (rowAction: UITableViewRowAction, indexPath: IndexPath) -> Void in
print("Deleted")
self.catNames.remove(at: indexPath.row)
self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
self.tableView.reloadData()
}
}
我是编码和学习 swift 的新手,我正在学习 swift 2 的教程并使用 swift 3,所以我在学习时遇到了一些问题,这是我正确坚持的问题。
【问题讨论】:
-
只需删除对
reloadData的调用。 -
仅供参考 - 每当您发布有关崩溃的问题时,您必须包含有关崩溃的相关详细信息,包括导致崩溃的确切行和完整的错误消息。
-
删除
reloadData调用不会解决问题。看看下面的答案。 -
@PhilHudson 当 OP 已经正确调用
deleteRows时,无需调用reloadData。在 OP 发布有关崩溃的详细信息之前,无法确定完整的解决方案可能是什么。 -
@maddy 只看代码就知道bug在哪里了。当然它应该提供崩溃日志,但您建议的是最佳实践,而不是实际的根本原因。
标签: swift uitableview row