从异步后台任务设置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调用,该调用看起来很脏并且不起作用)。
任何提示?
答
如果你只是想确保你的UI更新逻辑运行在主线程上,然后就去做:
DispatchQueue.main.async {
// code to run on main queue
}
+0
作品魅力,谢谢! –
请更新与相关的代码显示你已经尝试你做了什么,什么你的问题。清楚地解释你在代码中遇到的问题。 – rmaddy