UITableView reloadData最佳实践

时间:2012-03-14 19:33:09

标签: ios uitableview

何时是在UITableView上调用[reloadData]的最佳时机? viewDidAppear还是viewWillAppear?如果卸载了一个视图,那么底层的tableview也会被卸载吗?

我问的原因是由于我看到的一些行为。假设一个视图被要求重新加载其数据源,但在它完成之前会被释放。场景将使用UITabBarController并导航到与所选ViewController不同的视图。那么会发生什么事情是调用viewWillAppear,但是viewDidAppear没有(因为我导航了)。

结果,ViewController被释放(以及它的模型数据),但是如果我在viewWillAppear中调用reloadData,则会调用“cellForRow”和“numberOfRows”方法,这会导致“解除分配的实例”错误。那有意义吗?如果在请求视图出现的任何时候可以更改模型,您通常会输入检查nil的代码吗?

2 个答案:

答案 0 :(得分:0)

我会在加载视图后加载表,它允许在弄乱它们之前创建所有UIObject。不确定,但我相信该表会自动卸载超级视图。

看看这个问题>>> Objective C - Correct way to empty and reload UITableViewController with NSMutableArray

答案 1 :(得分:0)

在从服务器或任何地方获取数据源之前,您可以在获取数据时显示带有blankcell的表视图(可以绘制类似404网页的单元格),然后重新加载tableview。 记得将空白单元格的数量设置为1