之前沒有任何資料任務和 urlsessions 的經驗。所以我很好奇。案例是 - 嘗試使用無限滾動的表格。當這個方法呼叫
tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [IndexPath])
從 UITableViewDataSourcePrefetching 和檢查后,至少有一個 indexpath 有比當前最大專案大的行 - 我開始用 urlsession datatask 加載新資料。問題是 - 我需要做類似的事情嗎
let queue = DispatchQueue.gloabl(qos: .userInteractive)
queue.async {
myTaskGoesHere
}
uj5u.com熱心網友回復:
URLSession 資料任務總是在后臺執行緒上運行。因此,您必須切換到完成處理程式閉包中的主佇列以更新用戶界面。因為資料任務的答案是在 iOS 啟動任務的同一個執行緒上傳遞的。
順便說一句,.userInteractive也運行在主執行緒上。從檔案:
用戶互動任務在系統上具有最高優先級。將此類用于與用戶互動或主動更新應用程式用戶界面的任務或佇列。例如,將此用于影片類或互動式跟蹤事件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386660.html
