Ich erwartete [super class]
, um die Klasse der Oberklasse zurückzugeben, jedoch habe ich gefunden, mit diesem Code, der diese Klasse Klasse zurückgibt.Warum ist "[Selbst Klasse] == [Super Klasse]"?
-Code
NSLogObject([self class]);
NSLogObject([super class]);
NSLogObject([self superclass]);
NSLogBool([self class] == [super class]);
Ausgabe
[self class]: MainMenuScene
[super class]: MainMenuScene
[self superclass]: CCScene
[self class] == [super class]:[YES]
Kann jemand erklären, warum dies geschieht bitte ?. Ich erwarte, dass es denselben Wert wie [self superclass]
zurückgibt.
Macros: ------- #define NSLogBool(i) NSLog(@"%s:[%@]", #i, (i) ? @"YES" : @"NO") #define NSLogObject(o) NSLog(@"%s:[%@]", #o, o)
Und nur wenn ich nicht genug "Klasse" gesagt habe: "Class Class Class Class Class!" –
Sie sollten Apple-Präfixe nicht in Ihren eigenen Klassen oder Makros (oder nur irgendeinen anderen Bezeichner) verwenden. – JustSid
Ich sollte, wenn ich möchte, dass sie erscheinen, wenn ich NSLog gebe ...: P –