更新标签需要太长时间(迅速)

我是初学者快速开发者。 我用这个天气应用程序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 = "" }