iOS Swift 2 - 删除 tableView 行时出错

Posted

技术标签:

【中文标题】iOS Swift 2 - 删除 tableView 行时出错【英文标题】:iOS Swift 2 - Error deleting tableView row 【发布时间】:2015-11-23 01:19:32 【问题描述】:

当我尝试从 tableView 中删除一行时出现错误。 代码如下

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) 
 if editingStyle == UITableViewCellEditingStyle.Delete 

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

 

Xcode 打印的错误如下:

无效更新:第 0 节中的行数无效。更新后现有节中包含的行数 (1) 必须等于更新前该节中包含的行数 (1),加上或减去从该节插入或删除的行数(0 插入,1 删除)加上或减去移入或移出该节的行数(0 移入,0 移出)。

我已在 Stack 上阅读过此错误,但我无法弄清楚。 :(

提前致谢。

【问题讨论】:

【参考方案1】:

您从表中删除了该行,但首先您需要从数据模型中删除相应的数据。例如,如果您的数据模型是一个数组,那么您可以在其上调用 removeAtIndex 以删除该行。您必须始终按以下顺序进行:调整数据模型,调整表格视图。

(此时没有需要重新加载数据;您可以省略该行。)

【讨论】:

谢谢。是的,我必须在数组上删除AtIndex,然后从 tableView 本身中删除。这说得通。谢谢。

以上是关于iOS Swift 2 - 删除 tableView 行时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift UI 中删除 Picker 视图的灰色背景框

iOS Swift 2 - 删除 tableView 行时出错

使用 Firebase 数据 Swift、Xcode 7 填充 UITableViewController

Swift:在滚动时更改表格视图高度

swift didSelectRowAtIndexPath 可以多次调用

在ios中使用swift删除文件