2017-09-18 91 views
0

我是新來的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

回答

1

如果你只是想確保你的UI更新邏輯運行在主線程上,然後就去做:

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

作品魅力,謝謝! –