Tôi mong đợi [super class]
để trả lại lớp của lớp học, tuy nhiên tôi đã tìm thấy, sử dụng mã này để trả về lớp của lớp này.Tại sao "[self class] == [super class]"?
Mã
NSLogObject([self class]);
NSLogObject([super class]);
NSLogObject([self superclass]);
NSLogBool([self class] == [super class]);
Output
[self class]: MainMenuScene
[super class]: MainMenuScene
[self superclass]: CCScene
[self class] == [super class]:[YES]
ai đó có thể giải thích lý do tại sao điều này xảy ra xin vui lòng ?. Tôi hy vọng nó sẽ trả về cùng một giá trị như [self superclass]
.
Macros: ------- #define NSLogBool(i) NSLog(@"%s:[%@]", #i, (i) ? @"YES" : @"NO") #define NSLogObject(o) NSLog(@"%s:[%@]", #o, o)
Và chỉ trong trường hợp tôi không nói "lớp" đủ: "Lớp học lớp lớp học!" –
Bạn không nên sử dụng tiền tố của apple trong các lớp hoặc macro của riêng bạn (hoặc chỉ bất kỳ số nhận dạng nào khác) – JustSid
Tôi nên nếu tôi muốn chúng hiển thị khi tôi nhập NSLog ...: P –