iPhoneアプリ開発の勉強(10日目)+おまけ
やったとこ。Chapter05のLESSON17。
ここはただMapを表示させるだけ。
憶えておく点としては、Build PhaseからMapKitとCoreLocationフレームをワークを追加しておくことくらい。
やったとこ。「05-03分数電卓の例」から「07-03ドット演算子によるプロパティへのアクセス」まで。
メモリ管理方法
- ここでは第3版から追加された新しいメモリ管理方法のARCについての説明など、メモリ管理についてや、アクセサメソッドの定義方法について書かれている。
- ARC方式では@autoreleasepoolのブロックを定義するとことでretainやreleaseやautoreleaseなどをプログラマが意識しなくてすむ。
- 逆に使ってはいけない。
@autoreleasepool { : : }
- ブロックを抜ければ自動的に開放されて楽そうだけど、循環参照は__weakで弱参照にする必要があったり、alloc、copy、mutableCopy、new、initのメソッドファミリに一致するメソッド名を通常のメソッドで使っていけないという注意点がある。
- deallocでのreleaseも必要ない。
- まぁそれより何より、今開発環境がSnow Leopardなので使えない。。でもこれからも開発はARC方式を使ったメモリ管理方法が推奨されている。
- この辺りの参照がとかはCのポインタの知識も必要だったり、後から定期的に見直す章になりそう。
- ガーベジコレクションの項目はあまりちゃんと読んでいない。iOSでは使えないので。
- 手動のメモリ管理方法からARC方式を使うコードへの変更はXCodeのメニューから出来るらしい(未確認)
プロパティ
- インターフェイスファイルで@propertyで宣言して、実装ファイルで@synthesizeで宣言する。実装を書く場合は@dynamicで宣言する。参照カウンタ増やす場合はretainでオブジェクト以外やカウンタを増やさない場合は、assignで。ARC方式でも指定する必要がある。
- ドット演算子が使えるのはクラスで型宣言している場合だけ(idはダメ)
- 引数を持たないメソッドはドット演算子で呼べるけど、使うのはプロパティで宣言されているものだけにするべき。
- プロパティはコーディングを楽にしてくれる素晴らしい仕組みだと思った。
とても大切なことが書かれているところでゆっくり読んだつもりだけど、まだしっかりとは理解できていないかも。ARCでやるにしても参照カウンタに仕組みは知っておく必要があるなぁと思った。