假设存在一个UITableView
名为 myTable。假设发生了以下事件序列——
表已完全填充。
数据源被更新(本例是一个sqlite3 db,但并不重要),一个NSNotifcation 恰好表明有新数据,主线程收到通知然后调用[myTable reloadData]。
myTable 的 UITableViewDataSource
numberOfSectionsInTableView
被调用。假设只有 1 个部分。myTable 的 UITableViewDataSource
tableView:numberOfRowsInSection:
被调用。tableView:cellForRowAtIndexPath:
根据数据源中的行数调用几个。
我的问题与 cellForRowAtIndexPath 的可中断性有关。
问题——
如果调用了“reloadData”并且调用了 cellForRowAtIndexPath 并且另一个 reloadData 进入,cellForRowAtIndexPath 是否会在调用 numberOfSectionsInTableView 和 numberofRowsInSection 后中途停止并重新启动?
还是将新的 reloadData 排队,这样所有的 cellForRowAtIndexPaths 都将在 numberOfSectionsInTableView 和 numberOfRowsInSection 被调用之前完成?
我已经看过并且未能在文档或网络中找到这个问题的答案。我担心如果在 cellForRowAtIndexPaths “运行”时更新数据存储,numberOfSectionsInTableView 可能会发生变化,这可能导致 cellForRowAtIndexPath 请求现在超出范围的单元格的数据。
任何帮助将不胜感激。