0
我有表格视图,从SQL数据库中加载新的数据(取决于页面)。问题是,当我在主线程中加载它时,它会阻塞UI一段时间。当我尝试在后台执行“努力工作”,并在主线程中重新加载数据时,奇怪的事情开始发生,例如,表视图节头在错误的地方移动,并且我加载了大量的数据。上传新项目表格视图
第一种情况,因为虽然所有的工作,但块UI:
[self.tableView addInfiniteScrollingWithActionHandler:^{
@strongify(self)
if (!self.viewModel.isUpdating){
self.viewModel.isUpdating = YES;
[self.tableView.infiniteScrollingView startAnimating];
[self.viewModel nextPage];
[self.tableView reloadData];
self.viewModel.isUpdating = NO;
}
}];
在第二种情况下,我试着做后台工作,以下不按预期工作:
if (!self.viewModel.isUpdating){
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Add some method process in global queue - normal for data processing
self.viewModel.isUpdating = YES;
[self.tableView.infiniteScrollingView startAnimating];
[self.viewModel nextPage];
dispatch_async(dispatch_get_main_queue(), ^(){
//Add method, task you want perform on mainQueue
//Control UIView, IBOutlet all here
[self.tableView reloadData];
self.viewModel.isUpdating = NO;
});
//Add some method process in global queue - normal for data processing
});
}
}];
我应该怎么修改我的代码不加载主线程,没有“怪异”的东西?