今天做了一个离线下载的功能,需要在子线程获取到进度然后传到主线程去更新UI,
方法1,2,不好使,当下载结束了才去执行,因为实在内网环境非常的快, 如果是在外网环境就可以使用,我觉得这是苹果API的Bug,
最终使用了3,看清楚哦,是同步
dispatch_sync
// 1.NSThread[self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:NO];
- (void)updateUI {
// UI更新代码 self.alert.text = @"Thanks!";
}// 2.NSOperationQueue[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// UI更新代码 self.alert.text = @"Thanks!";
}];// 3.GCDdispatch_sync(dispatch_get_main_queue(), ^{
// UI更新代码 self.alert.text = @"Thanks!";
});
网友评论