Wenn ich mit dem Code mit Xcode Spielplatz spielte, funktioniert der folgende Code. die zurück in die Hauptwarteschlange gesendet werden kann und in main queue.
drucken.Abrufen von Daten aus dem Internet im Terminal
aber wenn ich den folgenden Code eingefügt und den Code als Bash-Befehl erstellen. Es funktioniert nicht. Es druckte alle Zeilen außer in main queue.
aus.
Daher glaube ich, wenn der Code als Bash-Befehl erfüllt ist, wenn der Code DispatchQueue.main.async
ausgeführt wird, etwas passieren würde, die nicht an die Hauptwarteschlange gesendet werden kann. Wie kann ich das beheben?
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 {}