UITableview 调用reloadData刷新tableview的时候,偶尔会出现崩溃的现象。出现这种情况大多数是在动态改变Datasource的同时tableview还处于滚动动的状态。Tableview动态改变Datasource与tablewview 调用reloadData方法之间存在时间差,如果此时tableview处于滑动状态,有可能会导致Datasoure下标越界造成Cash.解决办法就是将动态改变datasource和调用reloadData方法同时放在主线程里去处理,先改变datasource立即调用reloaddata。
dispatch_async(dispatch_get_main_queue(), ^{
self.dataSourceArray= a new Array.
[self.tableView reloadData];
});