我是初学者的快速开发者.我很喜欢这个天气应用程序.我正在下载网站数据,然后在我的标签中显示.
不幸的是,整个过程需要10秒才能更新我的标签.
这可能不是因为网络连接,因为控制台立即更新.
谢谢你的建议.

Mih*_*atu 12
会发生什么是代码可能在辅助线程上运行.您所做的任何UI更改都应在主线程上进行.试试这个:
dispatch_async(dispatch_get_main_queue()) {
// update label
}
Run Code Online (Sandbox Code Playgroud)
这应该立即更新您的标签.
以前,我们会选择调度方法(sync vs async),然后选择我们要将任务调度到的队列.更新的GCD反转此顺序 - 我们首先选择队列,然后应用调度方法.
斯威夫特3:
现在在Swift 3中,GCD库的更新方式如下:
DispatchQueue.main.async(execute: {
// UI Updates
})
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助.
| 归档时间: |
|
| 查看次数: |
3107 次 |
| 最近记录: |