1

バックグラウンドでサーバーからデータをダウンロードするために NSOperationQueue を使用しています。ダウンロードするデータが複数あるため、データをダウンロードするたびに複数の操作がキューに追加され、単一のデータを受信したら更新する必要がある UITableview があります。私は KVO アプローチを使用して、操作の終了ごとに「isFinished」キーを追跡しました。しかし、テーブルビューを更新すると、テーブルビューのすべてのデリゲートが呼び出されますが、テーブルは更新されません。テーブルビューが完全に更新されていない場合でも、コンソールログから、ワーカースレッドからのログが表示されることもわかります(データのバックグラウンドダウンロードに使用されます)。では、テーブルが完全に更新されないのはなぜですか? それを回避する方法は何ですか?

4

1 に答える 1

1

いくつかのコードを見るのは良いことですが、考えられる理由の 1 つは、reloadData をバックグラウンド キューから実行している可能性があります。

これを試して:

dispatch_async(dispatch_get_main_queue(), ^{
        [self.tableView reloadData];
    });
于 2012-07-16T09:17:17.617 に答える