tableView.reloadRows(at:[indexPath],带有:.none)会像这样崩溃吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tableView.reloadRows(at:[indexPath],带有:.none)会像这样崩溃吗?相关的知识,希望对你有一定的参考价值。
我试图理解Fabric中的错误:
无效更新:第0节中的行数无效。更新后现有部分中包含的行数(40)必须等于更新前该部分中包含的行数(20),加上或减去数字从该部分插入或删除的行(插入1个,删除1个)并加上或减去移入或移出该部分的行数(0移入,0移出)。专门的NewInboxViewController.tableView(UITableView,didSelectRowAt:IndexPath)
发生在didSelectRow:AtIndexPath
的这一行:
tableView.reloadRows(at: [indexPath], with: .none)
表视图行为是:
- 视图模型加载20行
- 当用户滚动到表视图的70%时,我们再加载20行,
isDownloading
bool切换为true,调用完成时设置为false,然后表视图重新加载 - 当
can commit edits
为true时,isDownloading
为false,否则用户可以滑动删除该行 - 当用户拉动刷新时,我们会吹掉存储在数组中的单元格,并从API调用中替换20个最近的项目(已编辑)
答案
您告诉表视图重新加载一行,但您向数据模型添加了20个新行。这就是错误的含义。它说:
“在您调用
reloadRows
之前,数据模型中有20行。现在我看到数据模型中有40行,但您只是告诉我重新加载(插入和删除)1行。”
您应该使用20个新索引路径的数组调用tableView.insertRows(at:)
,每个新添加的行一个。
以上是关于tableView.reloadRows(at:[indexPath],带有:.none)会像这样崩溃吗?的主要内容,如果未能解决你的问题,请参考以下文章
如果在另一个表更新后调用太快,tableView.reloadRows 会闪烁
Swift tableView.reloadRows 删除单元格