flyingbirdのiPhoneアプリ開発記録

- PolyRhythmの中の人がiPhoneアプリ開発中に思ったことを記録するブログです -

Objective-Cのstaticイニシャライザー

所謂javaでいうところの

static {
    // この初期化
}

Objective-Cでやる場合、どうすのか!!
ググってみると、NSObjectに実装されている

- (void)initialize

を実装すれば良いらしい。
ただ、複数回呼ばれることがあるらしく、
そのへんは自前で1回しか処理が行われないように
制御しなくてはならない。
ここを参考にフラグで制御しました。「Objective-Cクラスオブジェクトの初期化
但し、初回かどうかの判定BOOLはメソッドの中ではなく外側に

static BOOL isInitialized = NO;

のように宣言し、それを参照して判定しました。

ちなみに、OBjective-Cにはクラス変数という概念は無いらしいです。