macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

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 )

なし

引数

クラス

NSObject

Class Methods

使用可能

10.0

参照

例文

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
[NSObject initialize];
}

@end