由于索引超出范围,UITableView setEditing方法导致崩溃

时间:2017-08-24 01:19:32

标签: ios swift uitableview autolayout

所以我遇到了UITableView的问题。我有自我调整单元格,当UITextView内部变化时,实际上可以改变高度。当我设置UITableViewController编辑时,super会使索引超出范围崩溃。

崩溃发生在这一行:

super.setEditing(editing, animated: animated)

我得到的错误是:

  

由于未捕获的异常终止应用程序' NSRangeException',原因:' *** - [__ NSArrayM objectAtIndexedSubscript:]:索引7超出空数组的界限'

这个越界崩溃不是由我编写的一行代码引起的,因为我检查了访问数组的每个实例,并且在崩溃发生时没有调用它们。异常断点也指向上面的行,所以我确信这与UITableViewController的默认setEditing: animated:实现有关。

有趣的一点是,只有当可调整大小的单元格位于表格视图中时才会出现此错误。当我创建没有它的表视图时,没有问题。如果我保留细胞但没有触及任何约束以使其不会改变其高度,也没有问题。这让我相信某种形式的细胞可以实时改变高度"导致这种奇怪的崩溃,但由于我无法看到UITableViewController实现中找到导致错误的行,我不知道如何处理这个问题。

由于

修改

事实证明,崩溃的更准确原因是当单元格尝试更改其高度时,这是编辑更改的直接结果。因此,例如,由于带有beginUpdates()endUpdates()的文本视图而仅仅增长或缩小的单元格不会导致任何问题。但是在开始编辑时扩展单元格就是出现这个问题的时候。

0 个答案:

没有答案