2

我需要这个代码块按顺序运行:

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

它正在内部运行DispatchQueue.main.async()(每个网络调用都是我试图暂时阻止用户输入的原因)。我仍在学习 swift 并且在 GCD 概念上有些挣扎。任何建议将不胜感激。

4

1 回答 1

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()
于 2017-03-02T23:16:45.220 回答