近期遇到一种情况,可能偶尔出现两个需要reloadData的情况。间隔时间很短,这就造成第一次在cellForRowAtIndexPath的代理方法里面返回cell赋值时,第二个需要刷新的地方改变了数组内容,引起数据错误(数组越界等等情况)引起的crash。苹果并没有给我们直接提供检测刷新状态的方法;但是我们还想程序等reloadData完成之后在操作某个方法。此时可以使用以下方法。
解决方法:在reloadData后加 [m_tableView layoutIfNeeded];
eg:
[m_VideoTableView reloadData];
[m_VideoTableView layoutIfNeeded];
[一些其他操作];