从TableView中删除对象时应用程序崩溃

时间:2017-06-19 10:58:11

标签: ios objective-c uitableview

我的UITableView中有多个数据,当我删除一条记录时。

2 个答案:

答案 0 :(得分:1)

不要使用didEndDisplayingCell通过传递的索引路径来操作单元格或数据源数组。

只是通知 已从表中删除指定的单元格

documentation还声明:

  

使用此方法检测何时从表视图中删除单元格,而不是监视视图本身以查看它何时出现或消失。

解决方案是将此方法中的整个代码移动到删除单元格/数据源项目的位置,并在之前删除任何内容

答案 1 :(得分:-1)

该应用程序崩溃是因为即使您删除了该对象(因此数组现在将减少一个元素),但您尚未告诉表视图根据新数据源重置自身。如果删除最后一个元素,则即使cellforRowAt也会崩溃。一种解决方案是通过调用以下方法重新加载表视图:

<tableViewName>.reloadData()

,但是如果tableViews很大且很复杂,它将产生不必要的闪烁。第二件事,您不应该使用didEndDisplayingCell