繁体   English   中英

如何从URLSession.shared.dataTask(macOS框架)返回DispatchQueue.main

[英]How to go back to DispatchQueue.main from URLSession.shared.dataTask (macOS framework)

我正在构建一个macOS框架,在某些时候,我需要向某个API发出请求

当我得到响应时,我想更新UI。 我正在使用URLSession.shared.dataTask进行调用,因为我知道调用是在后台线程中进行的

出于某种原因,当我尝试回到主线程时,没有任何反应

我正在使用虚拟机来运行我的框架

有帮助吗? 谢谢

我在这里如何处理请求:

URLSession.shared.dataTask(with: request) { data, response, error in
  if error != nil {
    DispatchQueue.main.async {
      //Display error message on the UI
      //This never happens
      //Never go back to the main thread
      //Framework stop working
    }
  }
}.resume()

你确定你的任务被调用了吗?

let dataTask = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) -> Void in

....

    DispatchQueue.main.async {
        completion(nil, nil)
    }
}
dataTask.resume() // You should add this. 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM