1

我正在尝试更新分组的表格视图。有一个过滤器,因此有时数据不会显示在第二部分中。数据始终显示在第一部分。因为查询需要一段时间,所以我试图将事情放在后台,然后在主线程上更新 UI。然而,我似乎无法让它工作,并且想知道我做错了什么。基本上第一部分将正确显示数据,但第二部分根本不会显示其数据。这是一些伪代码来说明我目前正在尝试的内容

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];
    });

如果我只为一个表格部分执行此操作,它会起作用。事实上,我需要更新两件我找不到正确方法的事情。谢谢。

编辑:我只是想更新一个表格视图。所以在我得到我的数据后,我只是调用重新加载数据。

4

0 回答 0