initialize
初期化します
解説
クラスが使われる前に初期化します。
直接呼び出してはいけません。
ランタイムシステムは、クラスに最初のメッセージを送信する直前に1度だけinitializeメッセージを送信します。
たとえば[NSApplication new]というメッセージを送信する場合、ランタイムシステムは
[NSObject initialize];
[NSResponder initialize];
[NSApplication initialize];
と3つのinitializeメッセージを呼び出します。
このプログラムでNSTextクラスの使用を開始すると
[NSText instancesRespondToSelector:theSelector]
ランタイムシステムは
[NSView initialize];
[NSText initialize];
と2つのメッセージを呼び出します。
この時点ではNSObject 、NSResponder にはinitializeメッセージは送信されません。
クラス固有の初期化処理が必要な場合は独自のinitializeを実装することが可能です。
通常ランタイムシステムは1度しかinitializeメッセージを送信しませんが、複数回呼び出される場合がありますので、initializeの複数回呼び出しを止めるコードを書いておくことが推奨されています。
+(void)initialize { static BOOL tooLate = NO; if(!tooLate){ /*初期化コード*/ tooLate = YES; } }
返り値
( void )
なし
引数
フレームワーク
Foundation
クラス
NSObject
Class Methods
使用可能
10.0
参照
例文
#import "MyObject.h" @implementation MyObject - (IBAction)myAction:(id)sender { [NSObject initialize]; } @end