更新标签需要太长时间(迅速)
我是初学者快速开发者。 我用这个天气应用程序stucked。我下载的网站数据,然后显示在我的标签。
不幸的是,整个过程需要10秒来更新我的标签。
这可能不是因为networking连接,控制台即时更新。
感谢您的build议。
会发生什么情况是代码可能在辅助线程上运行。 您所做的任何UI更改都应在主线程上进行。 所以试试这个:
dispatch_async(dispatch_get_main_queue()) { // update label }
这应该立即更新您的标签。
以前,我们会selectdispatch方法(sync vs async),然后select我们想要派发任务的队列。 更新后的GCD反转此顺序 – 我们首先select队列,然后应用调度方法。
Swift 3 :
现在在Swift 3中 ,GCD库如下更新:
DispatchQueue.main.async(execute: { // UI Updates })
我希望这可以帮助你。
可能会迟到回答,但在Swift 3中,逻辑应该是这样的。
DispatchQueue.global(qos: .background).async { // Background Thread Or Service call Or DB fetch etc DispatchQueue.main.async { // Run UI Updates and other logic }}
你的代码有多个问题。
第一:有很强的参考周期
通过把它closures来修复它。
[weak weakSelf = self]
SECOND:在主线程中更新UI
DispatchQueue.main.async { //Update UI weakSelf?.mReslut.text = "" }