![](/img/trans.png)
[英]Storing data from an asynchronous closure during URLSession.shared.dataTask
[英]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.