在reloadData之后,为UITableView调用数据源方法的顺序是什么?

时间:2013-08-08 18:21:37

标签: ios uitableview ios5

从我的调用堆栈中可以看出,调用'reloadData'后立即在同一个调用堆栈上调用'tableView:numberOfRowsInSection:',然后调用'tableView:cellForRowAtIndexPath:'在runloop上调用后。

这对我来说似乎很奇怪,因为如果存在反映表视图的真实行数的变量,那么我们称之为'numberOfRows',在'tableView:numberOfRowsInSection:'中返回,但在'reloadData'更改后立即调用'numberOfRows'的值然后我们到达'tableView:cellForRowAtIndexPath:'的不一致状态。对'tableView:cellForRowAtIndexPath:'的调用会比'numberOfRows'更多或更少。

我相信这个确切的问题导致我崩溃。我总是假设数据源调用是在经过深思熟虑的顺序中在主runloop上一个接一个地排队,以避免这些错误。

我的假设不正确吗?

(iOS 5.1模拟器,6 +未经测试)

0 个答案:

没有答案