程序使用的是 UINavigationController 。api
使用tableView來顯示對應的城市,在下載離線地圖的時候,經過高德地圖的一個api來下載,下載過程當中,使用異步線程進行ui界面更新。這個異步
dispatch_async(dispatch_get_main_queue(), ^{ 更新UI界面。更新相應的cell信息。 }
在下載過程當中,若是返回到上一個界面。離線下載界面一直不會dealloc。async
最後找到緣由,是在下載的block中用到了self。ui
解決辦法:spa
__weak OfflineViewController *weakSelf = self; dispatch_async(dispatch_get_main_queue(), ^{ [weakSelf 更新界面的方法] }