JavaプログラマがXcodeでiPhoneアプリを作ってみる.3週目

今週は、iPhoneのコーディングには直越関係しない、サーバサイドのJava開発環境をWindowsからMacに移動させる作業がメインでした。Windowsでは割と古いJBossを使っているのですが、MacのJava8 JDK上で同じJBossのバイナリを走らせたら、あっさりなんの障害もなく動きました。EclipseWindows版とMac版でバイナリが異なるので、新たにセットアップが必要でしたが、コード保管のショートカットの変更が必要なくらいで、後はWindowsの「いつもの手順」で開発環境ができました。Javaは偉大です。

XCode 6 beta4

  • 早くもXCode 6beta4が公開されたので、早速バージョンアップをしてみる。バージョンアップされる毎にSwiftの言語仕様が微調整されている。

Swift

  • Dictionaryクラス
    • 5000件程度のデータを表示させようとしたが、画面更新が遅い。
    • 最初はUIViewやCALayerのView周りを調整していたが、原因はDictionaryクラスだった。
    • DictionaryをJavaのHashMap感覚で使っていたが、単純なデータの出し入れがとにかく遅い。
    • Twitterでも同様のつぶやきが散見される。
    • この問題は今後のバージョンアップで解消されると思われるが、とりあえずNSDictionaryを使えば解消される。タイプセーフじゃなくなるけど
  • NSJSONSerialization
    • JSON文字列をNSJSONSerialization.JSONObjectWithData()でNSDictionaryに変換した場合、nilデータが紛れ込むことがある。
    • beta3までだと大丈夫だったので、多分バグ。
    • ループの頭にnilチェックを追加してとりあれずしのぐ。