2017-03-02 66 views
2

在swift3應用連續做我需要的代碼塊,以便運行:如何保證呼叫使用GCD

UIApplication.shared.beginIgnoringInteractionEvents() 
loadDataTask.resume() 
UIApplication.shared.endIgnoringInteractionEvents() 

它正在的DispatchQueue.main.async()內運行(每一個網絡通話,這就是爲什麼我想暫時阻止用戶輸入)。我仍然在快速學習,並且在GCD概念上掙扎一點。任何建議將非常感激。

+1

試過[OperationQueue](https://developer.apple.com/reference/foundation/operationqueue)? – antonio081014

回答

2

只需將endIgnoringInteractionEvents呼叫放入完成處理程序loadDataTask

UIApplication.shared.beginIgnoringInteractionEvents() 
let loadDataTask = session.dataTask(with: request) { data, response, error in 
    ... 

    DispatchQueue.main.async { 
     // do all UI and model updates here 

     UIApplication.shared.endIgnoringInteractionEvents() 
    } 
} 
loadDataTask.resume() 
+0

完美的作品!我以爲我試過這個,但顯然不是,非常感謝 –