1

如果语音控制打开,除了滑动单元格之外,当我们滚动表格视图或加载单元格时,也会调用 EditActionsForRowAt。如果我快速滚动表格视图,它将在 EditActionsForRowAt 委托函数上崩溃并显示以下消息:

与 UITableView 一起使用的索引路径无效。传递给表视图的索引路径必须恰好包含两个指定节和行的索引。如果可能,请在 NSIndexPath+UIKitAdditions.h 中使用 NSIndexPath 上的类别

似乎 indexPath 不会在某处正确传递。在这种情况下,有时 indexPath 将为空。当崩溃发生时, indexPath 不会是 nil 而是不包含任何内容。

(lldb) po indexPath.isEmpty
true
(lldb) po indexPath == nil
false

我通过在函数 editActionsForRowAt 中添加代码来解决此崩溃:


guard !indexPath.isEmpty else { return [] }

但是,当我滚动表格视图时,不应调用 EditActionsForRowAt 函数。有人对此有任何想法吗?如果启用了语音控制,我如何防止在加载单元格时调用 EditActionsForRowAt?

4

0 回答 0