iOS – 另一个线程需要将reloadData发送到mainthread

我有一个单独的线程创build一个UIView对象,将其插入到UITableView的数据源中,然后调用UITableView上的reloadData。 然而,由于它是一个单独的线程,它不能直接调用reloadData,它需要使主线程做到这一点…但你怎么告诉主线程做到这一点?

谢谢

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; 

你可以使用dispatch async,这个方法允许你将工作线程编组到线内代码块而不是使用performSelectorOnMainThread的方法:

 dispatch_async(dispatch_get_main_queue(), ^{ [self.tableview reloadData]; });' 

这样的事情呢? (可能不会编译,我input)

 - (void) callReloadData { if ([NSThread isMainThread]) { @synchronized (self.tableView) { [self.tableView reloadData]; } } else { [self performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES]; } }