2012-04-15 7 views
0

可能な二重に "自己" とは何か:
About the keyword of self
Why is self allowed in static context in objective cクラスメソッド

オブジェクトの種類クラスメソッドでselfオブジェクトのですか?

例:

+ (void)test { 
NSLog(@"class self: %@", self); 
} 

は、クラスメソッド内selfオブジェクトは、クラスの完全初期化されたオブジェクトや、重要なメタデータのための唯一のクラスラッパーオブジェクトですか?クラスメソッドで

よろしく

+0

リンク – CarlJ

答えて

7

selfクラスオブジェクトにClassとポイントを入力しています。あなたは、クラスに送ってちょうどあなたのようにそれにメッセージを送ることができます。

+ (void) classMethod; { 
    // the same 
    MyClass* a = [[self alloc] init]; 
    MyClass* b = [[MyClass alloc] init]; 
} 
+0

ためのTHXは、Apple-ドキュがクラスオブジェクトのためにあるのでしょうか? – CarlJ

+0

はい、オーガナイザウィンドウで検索すると、 'typedef struct objc_class * Class; 'という定義になります。 (だから、 'Class *'を使わないという点ではあまりオブジェクトではないかもしれません。) –

+0

ok thx、それは良い古い構造体です。 – CarlJ