iOS -另一个线程需要向主线程发送reloadData



我有一个单独的线程,创建一个UIView对象,插入它到UITableView的数据源,然后在UITableView上调用reloadData。然而,由于它是一个单独的线程,它不能直接调用reloadData,它需要让主线程做它…但是如何告诉主线程去做呢?

谢谢

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

你可以使用调度异步,这个方法允许你将工作线程封送到内联代码块,而不是使用performSelectorOnMainThread方法:

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

这样怎么样?(可能无法编译,我正在输入)

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

最新更新