[Swift] Alamofire 3.0を使用してJSONデータを取得(2.0と書き方が変わってます)

alamofire

何回やってもエラーになるなと思ったらAlamofire 2.0の書き方だった・・

alamofire

ネットで簡単にサンプルコード取得できて、便利な世の中だなーと思っておりますが、自分の環境で使えるのかは毎度確認しておく必要がありますね。

今回はAlamofireというライブラリを使用して、JSONデータを取得するところでハマりました。原因はAlamofireのバージョンが3.0に上がったのに気づかずに、2.0の書き方でやっていたためでした。

まだまだネット上には2.0のサンプルコードが多くアップされており、3.0のサンプルコードは少ないです。コーディングする際に勘違いされるかたも多いかもしれませんね。

私としてはAlamofireはそんなにさわる機会がないかなという感じですが備忘録のためメモしておきます。

Alamofire 3.0でAPIが変更になっていた

ほんと、ちゃんと確認しておけばよかったのですが、根本を間違えてました。。
データへのアクセス方法が違います。

※Swift2.0版です。

Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
         .responseJSON { response in
             debugPrint(response)     // prints detailed description of all response properties

             print(response.request)  // original URL request
             print(response.response) // URL response
             print(response.data)     // server data
             print(response.result)   // result of response serialization

             if let JSON = response.result.value {
                 print("JSON: \(JSON)")
             }
         }

response.XXXXXX というようにアクセスします。
JSONの結果には、response.result.value でアクセスできます。

有志の情報もわかりやすくてよいが、一度本家も見ておくことも大切

今回のAlamofireに限らず、ハマった時などは本家のサイトに行ってみるとすんなり解決することが多いです。

本家 GitHub
https://github.com/Alamofire/Alamofire

Alamofire 3.0 Migration Guide

Alamofire 2.0 Migration Guide