从异步后台任务设置UIProgressView

问题描述:

我是新来的Swift,并构建一个小的应用程序,将一些HealthKit数据传输到自建Web服务。 我置于UIProgressView在我Main.storyboard并将其连接到ViewController.swift:从异步后台任务设置UIProgressView

@IBOutlet weak var syncHealthProgress: UIProgressView! 

从一个行动中有经由外面的ViewController多个步骤6调用web服务。首先我获取在后台完成的健康数据(HKStatisticsCollectionQuery)。在后台任务中,我将获得结果并使用数据(URLSession)进行API调用,该调用也是异步完成的。

我想要做的事情:每次API调用成功我都想将进度提高1/6。

那么最佳做法是什么?无法从主线程外部访问UI(尝试将syncHealthProgress作为参数传递给API调用,该调用看起来很脏并且不起作用)。

任何提示?

+0

请更新与相关的代码显示你已经尝试你做了什么,什么你的问题。清楚地解释你在代码中遇到的问题。 – rmaddy

如果你只是想确保你的UI更新逻辑运行在主线程上,然后就去做:

DispatchQueue.main.async { 
    // code to run on main queue 
} 
+0

作品魅力,谢谢! –