iOS

iOS6 -> iOS7変更対応

More than 5 years have passed since last update.

OpenGLとかUIKit関係

全体の感想としてFoundation->objcへの置き換えとか、UI* -> NS* への置換えからgccとかのobjcコンパイラとの互換性を意識したのかなって思いました。#知らんけど

時間がない状態でさらっと調べただけなのでいっぱい穴は有ります。

とりあえず

OSのバージョン調べるやつ

float osVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

Foundation

NSString (iOS Category)

  • drawInRectで使用するenumのprefixがUI*からNS*に変わった。
  • UILineBreakModeだとかUITextAlignmentとかがNSLineBreakModeとかNSTextAlignmentとかに変わっている。

UIKit関連

全体

  • iOS7.0になりフラットデザインが適用されている。基本的に前のデザインに戻す方法はない。
  • 一部の色を変えたりしていると、デフォルトデザインから乖離して悪目立ちするので、個別に対応していく必要がある。
  • 見た目についてはUIAppearanceで解決するのが良い

UITableView

  • tableViewのインスタンスの扱いが微妙に変わっている
  • まだ詳細は把握出来ていないが、以前はインスタンスを使いまわしていたが、現在はインスタンスを生成しなおしている感じがある <要確認>
  • self.viewに対してbackgroundColor等を設定しており、ViewDidLoadでその設定が反映されていない場合はcellの呼び出し時に受け取ったtableViewで再度設定しなおすことで暫定対処できる。何が起こっているかは精査する必要がある。

UITableViewCell

  • backgroundColorの初期値が白になってる?

UIApplication

EAGL関係 (Quarts Core?)

CADisplayLink

  • invalid時に自動的にrunLoopへの登録を解除するようになった
  • 上記に伴い、既存の用にinvalid後にremoveRunLoopするとセグメンテーションフォールトで落ちるので注意。