Swift 如何从URLSession.shared.dataTask(macOS框架)返回DispatchQueue.main
我正在构建一个macOS框架,在某个时候,我需要向一些API发出请求 当我得到响应时,我想更新UI。我正在使用URLSession.shared.dataTask进行调用,据我所知,调用是在后台线程中进行的 由于某种原因,当我试图返回到主线程时,什么也没有发生 我正在使用虚拟机运行我的框架 有什么帮助吗? 谢谢 以下是我如何处理请求:Swift 如何从URLSession.shared.dataTask(macOS框架)返回DispatchQueue.main,swift,macos,frameworks,urlsession,Swift,Macos,Frameworks,Urlsession,我正在构建一个macOS框架,在某个时候,我需要向一些API发出请求 当我得到响应时,我想更新UI。我正在使用URLSession.shared.dataTask进行调用,据我所知,调用是在后台线程中进行的 由于某种原因,当我试图返回到主线程时,什么也没有发生 我正在使用虚拟机运行我的框架 有什么帮助吗? 谢谢 以下是我如何处理请求: URLSession.shared.dataTask(with: request) { data, response, error in if error !
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.
您确定已调用您的任务吗
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.
是的。我从代码中省略了它,但我已经更新了@A.AminiYes它是。我把它从代码中删掉了,但我已经更新了@A.Aminid你知道为什么这不起作用吗?我也有问题。你有没有想过为什么这不起作用?我也有问题。