###前提・実現したいこと
XcodeにてWebAPiを使って情報を取得したいが、エラー => Extra argument 'error' in callが生じてしまい、buildできないためお知恵を拝借できれば考えます。皆様、よろしくお願い致します。
###発生している問題・エラーメッセージ
エラー => Extra argument 'error' in callの解決
###問題のソースコード
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() }
###実際行った解決に関して。
エラー => Extra argument 'error' in callの解決には、下記の記述を行えば良いとあったので実際にコードを書いてみたのですが、buildせずに困っています。
問題のあるコード 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) } } })
解決策 こう書くとbuildする do { var abc = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) as! NSDictionary // エラーが起こらなければ後続の処理... } catch { // エラーが起こったらここに来るのでエラー処理などをする }
実際に書くが、buildしない。 do { let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject] let results = json["results"] as! [[String:AnyObject]] for song in results { let trackName = song["trackName"] as! String println(trackName) }
よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/25 03:57
2015/10/25 06:32