近期遇到一種情況,可能偶爾出現兩個需要reloadData的情況。間隔時間很短,這就造成第一次在cellForRowAtIndexPath的代理方法裏面返回cell賦值時,第二個需要刷新的地方改變了數組內容,引起數據錯誤(數組越界等等情況)引起的crash。蘋果並沒有給我們直接提供檢測刷新狀態的方法;但是我們還想程序等reloadData完成之後在操作某個方法。此時可以使用以下方法。
解決方法:在reloadData後加 [m_tableView layoutIfNeeded];
eg:
[m_VideoTableView reloadData];
[m_VideoTableView layoutIfNeeded];
[一些其他操作];