Die Methode gibt keinen Wert zurück, der von einer GET-Anforderung stammt, wobei die Variable res
im Aufgabenabschnitt gedruckt werden kann, aber am Ende nicht zurückgegeben werden kann.meine Swift-App kann keinen Wörterbuchwert zurückgeben
func lookUpTheWord(word:String) -> NSDictionary {
var res = NSDictionary()
let urlString = "https://wordsapiv1.p.mashape.com/words/" + word
if let url = NSURL(string:urlString) {
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "GET"
request.addValue("this is a key", forHTTPHeaderField: "X-Mashape-Key")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("\(error)")
return
}
res = self.toJson(data!)
print(res) //it works here
}
task.resume()
}
return res //res becomes nil
}
Mögliches Duplikat [Swift: Wie kann ich einen Wert innerhalb einer asynchronen urlsession Funktion zurückgeben] (http://stackoverflow.com/questions/27081062/swift-how-do-i-return-a-value-innerhalb-einer-asynchronen-urlsession-Funktion) –