我正在尝试更新分组的表格视图。有一个过滤器,因此有时数据不会显示在第二部分中。数据始终显示在第一部分。因为查询需要一段时间,所以我试图将事情放在后台,然后在主线程上更新 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];
});
如果我只为一个表格部分执行此操作,它会起作用。事实上,我需要更新两件我找不到正确方法的事情。谢谢。
编辑:我只是想更新一个表格视图。所以在我得到我的数据后,我只是调用重新加载数据。