func getJSON(a:String,i:Int) -> [String]{
let upper = "http://api.themoviedb.org/3/search/movie?query="
let restpart = "&api_key=5565bb94f87424577ef39f24d901ff06"
let newurl = upper + a + restpart
let url = NSURL(string: newurl)
let request = NSURLRequest(URL: url!)
var thetitle: String = "noerror"
var desc: String = "noerror"
var id: String = String(404)
let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if error == nil{
let swiftyJSON = JSON(data: data!)
thetitle = swiftyJSON["results"][0]["title"].stringValue
desc = swiftyJSON["results"][0]["overview"].stringValue
id = (swiftyJSON["results"][0]["id"].stringValue)
//print(thetitle)
}
else{
thetitle = "error"
desc = "error"
id = "0";
print("there was an error")
}
}
var newFriend = [thetitle,desc,id]
print(thetitle)
task.resume()
return newFriend
}
私はnewFriend配列を返したいと思いますが、値は常にデフォルト値であるようです。これをどうすれば解決できますか?Swift 2.0のvoid関数で値を返す方法は?
私はタスクの戻り値の型が無効であることを認識しています。つまり、そのブロック内の他のコードを変更できないということですか?
"dataTaskWithRequestからの戻り値"または "非同期要求からの戻り値"を検索するだけです。これは尋ねられ、頻繁に答えられています。 –