皆様、質問がございます。よろしくお願い申し上げます。
やりたいこと Web APIを用いて、HTTPリクエストでjsonデータを取得すること、
けれどbuildエラーが生じていて困って居ます。
問題のあるコードを改善したい private func showSongs() { let urlString = "https://itunes.apple.com/search?term=Ryuichi+Sakamoto&entity=musicTrack&limit=3&lang=ja_jp&country=JP" let url = NSURL(string: urlString) let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration()) let dataTask = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in if (error == nil){ //ここから let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as! [String:AnyObject] //ここまでがExtra argument 'error' in call、つまりエラーになります。 let results = json["results"] as! [[String:AnyObject]] for song in results { let trackName = song["trackName"] as! String println(trackName) } } }) dataTask.resume() }
基本形(この形式だとerrorをはかないらしい) by stackoverflow やりたいこと jsonデータに形式を変更した値を取得し、出力する。 errorが空だったたら、処理を開始する。 書いたコード func showSong(){ do{ let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject] let results = json["results"] as! [String:anyObjects] for song in results { let trackName = song["trackName"] as! String print(trackName) } catch{ //ここは失敗した時のコードを記述する。 } }
基本形を土台に書き換えたコード やはり、jsonのコードのところでbuildエラーする。 private func showSongs(){ let urlString = "https://itunes.apple.com/search?term=Ryuichi+Sakamoto&entity=musicTrack&limit=3&lang=ja_jp&country=JP" let url = NSURL(string: urlString) let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration()) let dataTask = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in do{ let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject] let results = json["results"] as! [String:anyObjects] for song in results { let trackName = song["trackName"] as! String print(trackName) } } }) dataTask.resume() }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/19 06:31
2015/10/19 06:41