Ios UITableView重新加载数据最佳实践

Ios UITableView重新加载数据最佳实践,ios,uitableview,Ios,Uitableview,在UITableView上调用[reloadData]的最佳时间是什么时候?ViewDid出现还是ViewWill出现?如果一个视图被卸载,底层的tableview也会被卸载吗 我问的原因是因为我看到了一些行为。假设一个视图被要求重新加载其数据源,但在完成之前被解除分配。一个场景是使用UITabBarController并导航到与所选ViewController不同的视图。所以发生的事情是调用ViewWillAspect,但ViewDidAspect没有调用(因为我导航离开了) 结果,ViewC

在UITableView上调用[reloadData]的最佳时间是什么时候?ViewDid出现还是ViewWill出现?如果一个视图被卸载,底层的tableview也会被卸载吗

我问的原因是因为我看到了一些行为。假设一个视图被要求重新加载其数据源,但在完成之前被解除分配。一个场景是使用UITabBarController并导航到与所选ViewController不同的视图。所以发生的事情是调用ViewWillAspect,但ViewDidAspect没有调用(因为我导航离开了)


结果,ViewController被解除分配(连同它的模型数据),但是如果我在ViewWillDisplay中调用reloadData,则会调用“cellForRow”和“numberOfRows”方法,从而导致“解除分配实例”错误。这有意义吗?您是否通常会输入代码来检查模型是否可以随时更改以显示视图?

我会在加载视图后加载表,它允许在处理所有UIObject之前创建所有UIObject。不确定,但我相信该表是使用superview自动卸载的

看看这个问题>>>

我会在加载视图后加载表,它允许在处理所有UIObject之前创建所有UIObject。不确定,但我相信该表是使用superview自动卸载的

看看这个问题>>>

在从服务器或任何地方获取数据源之前,您可以在获取数据时使用空白单元格(可以绘制类似404网页的单元格)显示tableview,然后重新加载tableview。
请记住将blankcell的单元格数设置为1。在从服务器或任何地方获取数据源之前,您可以在获取数据时使用blankcell(可以绘制类似404网页的单元格)显示tableview,然后重新加载tableview。
记住将空白单元格的单元格数设置为1,这实际上取决于您试图实现的目标。好吧,我想这会导致我在iOS中看到的一些行为。假设您的模型数据可以在每次视图出现时更改(客户数据存储在客户机上的会话中)。到底释放了什么?表视图通常不会因为导航到另一个选项卡而从内存中删除,视图控制器本身也不会因为其视图已卸载而被释放。您看到了什么崩溃?基本上,ViewController从导航堆栈弹出,但从未显示。它被释放,这释放了模型。在这个场景中,viewWillAppear将与重载数据一起被调用;但是,不会调用viewDidAppear。因此,所发生的是1)重新加载数据2)解除锁定3)CellForRowatinex,它引用了解除锁定模型。这实际上有点取决于您试图实现的目标。嗯,我想这会导致我在iOS上看到的一些行为。假设您的模型数据可以在每次视图出现时更改(客户数据存储在客户机上的会话中)。到底释放了什么?表视图通常不会因为导航到另一个选项卡而从内存中删除,视图控制器本身也不会因为其视图已卸载而被释放。您看到了什么崩溃?基本上,ViewController从导航堆栈弹出,但从未显示。它被释放,这释放了模型。在这个场景中,viewWillAppear将与重载数据一起被调用;但是,不会调用viewDidAppear。因此,所发生的是1)重新加载数据2)解除锁定3)CellForRowatinex,它引用了解除分配的模型。如果数据在加载之间没有变化,这没关系,但是当数据发生变化时会发生什么。假设在另一个视图中更改的是模型数据。如果数据在加载之间没有更改,这没关系,但是当数据可以更改时会发生什么。假设在另一个视图中更改的是模型数据。