Lorsque j'ai joué avec le code en utilisant Xcode playground, le code suivant fonctionne. qui peut être renvoyé à la file d'attente principale et imprimer in main queue.
.Récupérer des données à partir d'Internet dans le terminal
mais lorsque j'ai inséré le code suivant et générer le code en tant que commande bash. Ça ne marche pas. Il a imprimé toutes les lignes sauf in main queue.
. Par conséquent, je crois que si le code est respecté en tant que commande bash lorsque le code s'exécute DispatchQueue.main.async
, il se passera quelque chose qui ne peut pas être envoyé à la file d'attente principale. Comment puis-je résoudre ce problème?
import Foundation
let defaultSession = URLSession(configuration: URLSessionConfiguration.default)
let url = URL(string: "https://api.pearson.com/v2/dictionaries/ldec/entries?headword=test&apikey=zAONRFmzZsfQ4H4F53kJbpOzq9CUJtnS")
if let url = url {
print("start")
defaultSession.dataTask(with: url, completionHandler: {data, response, error in
print("other queue.")
if let error = error {
print(error)
return
} else if let httpResponse = response as? HTTPURLResponse, 200...299 ~= httpResponse.statusCode, let data = data {//, let result = data as? Dictionary<String, Any> {
//print(result)
print("going back to the main queue")
DispatchQueue.main.async {
print("in main queue.")
}
} else {
print("something really wrong")
}
}).resume()
}
while true {}