2012-08-06 10 views
6

私はがスーパークラスのクラスを返すと予想しましたが、このコードを使用してこのクラスのクラスを返すことがわかりました。これがなぜ起こるかしてくださいなぜ「[self class] == [super class]」ですか?

[self class]: MainMenuScene 
[super class]: MainMenuScene 
[self superclass]: CCScene 
[self class] == [super class]:[YES] 

コード

NSLogObject([self class]); 
NSLogObject([super class]); 
NSLogObject([self superclass]); 
NSLogBool([self class] == [super class]); 

出力は、誰かが説明することができます?。私はそれが[self superclass]と同じ値を返すと期待しています。

Macros: 
------- 
#define NSLogBool(i) NSLog(@"%s:[%@]", #i, (i) ? @"YES" : @"NO") 
#define NSLogObject(o) NSLog(@"%s:[%@]", #o, o) 
+2

ちょうど私が "クラス"と言うほどのことを言っていなかったので、 "クラスクラスのクラスクラスのクラス!" –

+0

自分のクラスやマクロ(または他の識別子)にリンゴ接頭辞を使用しないでください。 – JustSid

+1

NSLog ...と入力すると表示されるはずです:P –

答えて

関連する問題