1

グループ化されたテーブルビューを更新しようとしています。フィルターがあるため、データが 2 番目のセクションに表示されないことがあります。データは常に最初のセクションに表示されます。クエリには時間がかかるため、バックグラウンドで処理を行ってから、メイン スレッドで UI を更新しようとしています。しかし、私はそれを機能させることができないようで、何が間違っているのか疑問に思っていました。基本的に、最初のセクションではデータが正しく表示されますが、2 番目のセクションではデータがまったく表示されません。私が現在試していることを説明するための擬似コードを次に示します

dispatch_queue_t lowQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0);
dispatch_queue_t mainQueue = dispatch_get_main_queue();

dispatch_async(lowQueue, ^{
    // long running task for section 1

    if (filter == SHOW_SECTION_2) {
         // long running task for section 2

          dispatch_async(mainQueue, ^{
          // update main thread UI for long running task 2
          [self.tableView reloadData]; 
          });
    }

    dispatch_async(mainQueue, ^{
         // update main thread UI for long running task 1
          [self.tableView reloadData];
    });

1 つのテーブル セクションに対してのみ実行すると、機能します。正しい方法を見つけることができないのは、2つのことを更新する必要があるという事実です。ありがとう。

編集:テーブルビューを更新しようとしています。したがって、データを取得したら、リロード データを呼び出すだけです。

4

0 に答える 0