2011年11月23日水曜日

ARCについて

参照記事でお勉強↓
[iOS5] ARC (Automatic Reference Counting) : Overview
 
iOS5になってARC(Automatic Reference Counting)が話題になってますね。
iPhoneアプリ開発ではメモリの解放を、retain,releaseやdealloc,autolereaseでメモリを破棄してきました。
しかし、このARCを有効にすると解放宣言が書かなくて良いようです。
書かなくていいということは、書いてもいいかって それは違います。
ARCを有効にすると解放宣言はエラーになります。
ということは、既存のアプリはARCを有効にするとメモリ管理はエラーになるということなんですね。大変ーΣ(@o@)ノノ


 当初、「なんだ書かなくて良くなったらこれからのアプリ作るとき楽じゃん!」って思っていましたが、どうやらそうではないようですね。上のリンク先にもあるように「ARCはガーベージコレクションとは違います。あくまでも、コンパイラが一定のルールに則って適切な場所に適切なコードを入れてくれるものです」って書いてありました。


これまではヘッダファイルに、
@property( nonatomic,retain)って書いて、宣言した値を保持してきました。
 しかし、ARCではretain書いちゃ駄目なんですね。

ARCにおけるオブジェクトの考え方は、
  • オーナーのいる(強参照されている)オブジェクトは常に利用可能
  • オーナーがいなくなったら(スコープ外に出た場合も含む)破棄される
らしいのです。
 参照には2種類あり、strong referenceとweak referenceがあります。
オーナーになれるのはstrong referenceだけです。
他にも所有修飾子の使い方がありますが、今日はこの辺にしとこう。
ちょっと実際コード書かないと分からない。
やっぱりiOS5触りたいのでxcodeアップデートしよう。
Developer登録しましょう。生存戦略しましょうか。

0 件のコメント:

コメントを投稿