UITableView
オンタイマーを更新しました。配列のデータを変更してから、 を呼び出します-[UITableView reloadData]
。しかし、テーブルをスクロールするか、タブ バーでタブを切り替えるまで、何も変更されません。何が起こっていますか?どうすればこれを回避できますか?
1641 次
2 に答える
4
問題はその中にありました:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
self.newList = [self loadData];
[self.delegate list:self didUpdate:self.newList];
});
デリゲート呼び出しはバックグラウンドスレッドで行われました。UIを更新する場合は、メインスレッドで行う必要があります。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
self.newList = [self loadData];
dispatch_async(dispatch_get_main_queue(), ^{
[self.delegate list:self didUpdate:self.newList];
});
});
于 2012-10-11T19:52:12.660 に答える
4
メインスレッド以外でテーブルをリロードしない
于 2012-10-11T19:44:58.070 に答える