お世話になっております。
関数内でサーバーと通信し、処理結果を返却する関数を作りたいのですが、
通信処理が終了する前に戻り値が返却されてしまいます。(宣言時の値が返却される)
通信処理が終了するのを待ってから値を返却するにはどうしたらよいのでしょうか?
よろしくお願いいたします。
lang
1 2 static func test(url:String, text:String)->String{ 3 4 // 返却用変数(初期値はエラー) 5 var result:String = "error" 6 7 // POST送信 8 let request = NSMutableURLRequest(URL: NSURL(string: url)!) 9 request.HTTPMethod = "POST" 10 let myData:NSData = text.dataUsingEncoding(NSUTF8StringEncoding)! 11 request.HTTPBody = myData 12 let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data,response, error in 13 if (error == nil) { 14 // 戻り値を変数に設定 15 result = NSString(data: data!, encoding: NSShiftJISStringEncoding)! as String 16 } 17 }) 18 task.resume() 19 20 return result 21 22 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/29 06:28