Как вернуться к DispatchQueue.main из URLSession.shared.dataTask (платформа MacOS) - PullRequest
0 голосов
/ 08 апреля 2019

Я создаю инфраструктуру macOS, и в какой-то момент мне нужно сделать запрос к некоторому API

Когда я получу ответ, я хочу обновить пользовательский интерфейс.Я использую 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()

1 Ответ

0 голосов
/ 08 апреля 2019

Вы уверены, что ваша задача называется?

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. 
...