Objective-Cだと、静的な領域確保はできないみたいな。
VC++あたりだと、
クラスを静的宣言時、領域確保され、コンストラクタが呼ばれて初期化もされる。
MyClass a;
利用スコープを抜けると、デストラクタが呼ばれて領域は解放される。
Objective-Cでは、こんな使い方はできない。
ポインタで宣言し、newとdeleteを使って、動的にクラスを利用する方法
MyClass *a = new MyClass();
delete a;
と同等のやり方だけ、Objective-Cで行える。
リテラルに関しては、静的な意味合いで使えるようだ。
#define DEF_MOJIRETSU @”静的な文字列”
こいつの場所を、文字列ポインタで参照 な感じに利用できた。
NSString *strMoji = DEF_MOJIRETSU;
他のメジャーな言語に比べ、
領域の解放を、一番考えないといけない言語 なのかも。
その点は、めんどい面より、作り手が理解しやすい と思えた。
Cで言うnewとdelete(mallocとfree)にあたる、allocとreleaseを利用し、
確保と解放を行うイメージでよさそう。
実際は、リファレンスカウンタの増減を行うことでのオブジェクト管理。
iOS4では、この方法しか今のところないと。
ガーベジコレクションが利用できる環境だと、また別みたいだけど。