The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

iOS6変わったとこなど

相当すぎてますが、NDAも解禁ということで、、

UIViewControllerでメソッドがDeprecateされた

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html

modalView系が他のメソッドに完全に置き換わったのと、回転系のメソッドが変わったのと、unload系が呼ばれなくなってます。

Deprecateされたメソッドとその対策


廃止:modalViewController
代替手段:presentedViewController

廃止:automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers
代替手段:shouldAutomaticallyForwardRotationMethods とshouldAutomaticallyForwardAppearanceMethods

廃止:dismissModalViewControllerAnimated:
代替手段:dismissViewControllerAnimated:completion:

廃止:presentModalViewController:animate
代替手段:presentViewController:animated:completion:

廃止:shouldAutorotateToInterfaceOrientation:
代替手段:supportedInterfaceOrientations と preferredInterfaceOrientationForPresentation をオーバーライド
廃止:viewDidUnload

廃止:viewWillUnload

viewUnload系はメモリが少なくなった場合でも呼ばれなくなった。

view**Unloadについてはこちらによく書かれています。
メモリワーニング対応としてはdidReceiveMemoryWarningでどうにかするしかないですね
http://www.zero4racer.com/blog/929
回転についてはこちらなど

縦長対応

iPhone5が 640 * 1136 になったのでそれに対応せねばならない。

スプラッシュ画像の対応
以下の名前のファイルを追加すればいい

Default-568h@2x.png

storyboardの変更
storyboardの画面右下の画面の ○ボタンを押せば画面が縦長になる


armv7sの追加

3rdParty性のライブラリを使ってたりしない限りはあまり関係ないですが、使っている場合はそのライブラリがarmv7s用のバイナリを含んでいない場合は、ビルドするときにarmv7sを消さないとだめです。

UICollectionViewが追加
データの一覧表示するのにこれまではTableViewしかなかったのが、UICollectionViewという別の表現手段が用意されました。使い方はパッと見UITableViewとかなり酷似しているのでそれほど難しくはなさそう。


UIRefreshControlが追加

引っ張って更新するのがフレームワークに導入された

これまではEGOTableViewPullRefreshさんにお世話になってましたが、iOS6からはオワコンになります。
UIRefreshControlはもちろんiOS6でしか動かないので、しばらくはまだオープンソースのほうが使われるでしょう。

NSHashTable, NSMapTable, NSPointerArray, NSPointerFunctions,とか増えた

この理解であっているかはちと怪しいが

NSHashTableはNSSetのweak reference版
NSMapTableはNSDictionaryのweak reference版
NSPointerArrayはNSArrayのweak reference版(ただしARC環境ではサポートしないと書いてある)