今回はいよいよTwitterクライアントの作成に入ります。
androidでも作ったし、そんな時間かからないだろう、とたかを括っていたらモロにはまりました。
まず、以下のページを読みました。これらのページは時間の経過とともに更新されたものです。順番に読んでいくと、バージョン変更でどこが変わっていったのかがわかります。
同時に、バージョンアップの度にこんなに修正が必要なのだということを知りました。作って終わりではないことに恐怖を覚えました。
http://qiita.com/mokumoku/items/bf0460f420acac3c04fc
http://qiita.com/makora9143/items/5bdbab674bea55f56a81
http://qiita.com/g-1/items/05e20de236fb486cb84c#_reference-98fe541542eb73d405aa
http://qiita.com/g-1/items/43ecf43dd997af9f99bb#_reference-458d0a9f1b40da0892ca
ちなみに、最新の記事は2015年12月31日と約半年前のものなのですが、すでにエラーが出ます。
なので、記事に従ってコピペしても動きません。
私も、エラーでずっと悩んでいました。今回は特に詰まったところをご紹介していきたいと思います(半年もしたら参考にならなくなるのでしょうが…)。
半年の間の変更はオプショナル型とエラーの処理の仕方でした。またfabricが提供するライブラリにも変更がありました。エラーが出た際はその辺りを重点的にチェックするといいかと思います。
1)オプショナル型
これはオプショナル型の説明を読んで理解しておけばそんなにつまりはしなかったです。Xcodeが変更を示唆してくれるので、それに従えば大概は修正できました。
2)エラー処理
Swift 2では新しいエラーハンドリングの仕組みとしてdo〜try〜catch構文が導入されました。
そのため、エラーの処理の部分を書き直す必要がありました。詳しくは以下のページが参考になります。
http://ja.stackoverflow.com/questions/14489/swift-2%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8nsjsonserialization-jsonobjectwithdata%E3%81%A7%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%82%A8%E3%83%A9%E3%83%BC-extra-argument-er
3)ライブラリの変更
例えばAPIclientはTwitterクラスから独立して、TwitterAPIclientとなりました。このような変更がいくつもありました。いたるところで、そんなメソッドはないよ!とエラーが出て途方に暮れしました。
メソッドに関してエラーが出たら、ライブラリの変更を疑いましょう。
詳しくは改めて調べる必要が出ますが、公式サイトでエラーを書く書く
https://docs.fabric.io/ios/changelog.html
大まかに詰まったところは以上となります。
参考になれば幸いです。
次回は実際のコードを紹介していきます。