首页 > 解决方案 > UITableView 由于在滚动 tableview 的同时重新加载数据而崩溃

问题描述

我正在使用 UITableView 来显示记录列表。我的表允许从顶部和底部刷新。从顶部刷新时,旧记录保持可见,直到获取新数据。获取数据后,将删除数组中的所有记录并填充新记录。然后作为最后一步,我刷新 tableview 以反映新获取的数据。

一切都像一个魅力。

但...

当我们进行猴子测试时,它会导致崩溃。在顶部刷新期间,当数据被获取时,如果我继续滚动,拉动表格视图,经过几次尝试,会出现一个不幸的时刻,即删除数组以添加新记录,但当时 UITableView 也在布置单元格由于不断的拉动。这会导致崩溃。

一个简单的解决方法是在进行顶部刷新时清空 tableview,但就 ui 美学而言,这看起来并不好。此外,如果呼叫失败,我将不会向用户显示任何内容。

我尝试将刷新代码封装在tableviewbeginUpdateendUpdateblock 中,但由于tableview 本身没有变化(即没有添加/删除),所以它不会运行。

任何帮助,将不胜感激。

标签: iosswiftuitableview

解决方案


既然您说您滚动并崩溃可能是因为您尝试将数据插入到不再可见的索引中。在尝试更新表之前,您应该以某种方式检查您的索引。一些代码将帮助我更好地理解。


推荐阅读