swiftを学習中以下のコードにおいて、分からない部分があり質問させて貰いました。
import UIKit class ViewController: UIViewController { //URL to our web service let URL_SAVE_BOY = "http://[Your ip Address]/MyWebService/api/createteam.php" @IBOutlet weak var NameFeild: UITextField! @IBOutlet weak var oldFeild: UITextField! //Button action Method @IBAction func saveBtn(_ sender: UIButton) { //created NSURL let requestURL = NSURL(string: URL_SAVE_BOY) //creating NSMutableURLRequest let request = NSMutableURLRequest(url: requestURL! as URL) //setting the method to post request.httpMethod = "POST" //テキストフィールドから値の取得 let teamName = NameFeild.text let memberCount = NumberFeild.text //テキストフィールドからキーと値を連結してpostパラメータを生成する let postParameters = "name="+teamName!+"&member="+memberCount!; //ボディをリクエストするためのパラメータを追加する request.httpBody = postParameters.data(using: String.Encoding.utf8) //投稿要求を送信するタスクを作成する let task = URLSession.shared.dataTask(with: request as URLRequest){ data, response, error in if error != nil { print("error is (error)") return; } //返ってきたJsonの解析 do { //NSDictionaryに変換する let myJSON = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary //jsonデータの解析 if let parseJSON = myJSON { //stringの生成 var msg : String! //jsonからのレスポンスを取得 msg = parseJSON["message"] as! String? //返ってきたものを表示 print(msg) } }catch{ print(error) } } task.resume() } override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
こちらのコードの以下の部分におきまして、data
response
error
といった変数?は定義されていないにも関わらず、何故使用可能なのでしょうか?
let task = URLSession.shared.dataTask(with: request as URLRequest){ data, response, error in
こちらの部分につきまして、詳しくお聞かせ頂けましたら幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/13 07:06 編集
2019/12/13 07:23
2019/12/13 09:08
2019/12/13 10:13