作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在开始下载数据之前更新屏幕上的 textView。现在,它只会在所有下载完成后更新 View 。如何在下载之前或下载期间执行此操作?
编辑:我希望 self.textView.text = @"Connection is good, start syncing...";
在下载开始前更新 UI。但现在,它只会在下载完成后更新。
这是代码的样子。
if ([self.webApp oAuthTokenIsValid:&error responseError:&responseError]) {
self.textView.text = @"Connection is good, start syncing...";
[self.textView setNeedsDisplay];
[self performSelectorInBackground:@selector(downloadCustomers:) withObject:error];
}
我是新手,还没有了解线程的工作原理,但根据我的阅读,downloadCustomers 函数应该使用后台线程离开主线程来更新 UI。
最佳答案
if ([self.webApp oAuthTokenIsValid:&error responseError:&responseError]) {
self.textView.text = @"Connection is good, start syncing...";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self downloadCustomers];
dispatch_async(dispatch_get_main_queue(), ^{
//Do whatever you want when your download is finished, maybe self.textView.text = @"syncing finished"
});
});
}
关于ios - 如何在 Objective-C 中调用下一个方法之前更新 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873104/
我是一名优秀的程序员,十分优秀!