我需要以下代码块才能按顺序运行:
UIApplication.shared.beginIgnoringInteractionEvents()
loadDataTask.resume()
UIApplication.shared.endIgnoringInteractionEvents()
它是在
DispatchQueue.main.async()
内部运行的(每个网络调用都是我试图暂时阻止用户输入的原因)。我仍在学习GCD概念的敏捷和挣扎。任何建议将不胜感激。 最佳答案
只需将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()
关于ios - 如何确保使用GCD在swift3应用中串行完成调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42567306/