【发布时间】:2010-02-23 13:31:12
【问题描述】:
我有一个应用程序,其中 UITableView 的数据源由远程服务器的后台线程每 30 秒更新一次。
如果用户正在滚动 tableView 或者 tableView 正在处理reloadTableView:,则会发生崩溃。崩溃的原因是崩溃时表中的行数与重绘开始时的行数不匹配。
当请求的 TableView 单元格超出范围时会发生另一次崩溃,因为在调用 numberofTableViewCells: 和调用 cellfForRowAtIndexPath 之间,数据模型已更改并且单元格不再存在。
tableView 的数据是从后台线程更新的。从服务器加载数据时,用户应该仍然能够与 tableView 交互,但现在这会导致崩溃。
如何在更新 tableViewDataSource 时阻止 tableView 滚动或重新加载? 这种情况的最佳做法是什么?
谢谢。
【问题讨论】:
-
有关您的数据模型的详细信息会很有用。您使用的是核心数据还是其他?
-
另外,您使用什么方法定期重新加载 UITableView?你的后台线程没有调用 [tableView reloadData] 或任何东西,是吗?
-
是的,我正在调用 [tableView reloadData]; (数据模型存储在 SQLIte 中。)
标签: iphone uitableview