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