请考虑以下代码:
NSArray *array = [NSArray array];
Class class = [array class];
Class superclass = [array superclass];
NSLog(@"Class %@", class); // __NSArrayI, ok
NSLog(@"Superclass %@", superclass); // NSArray, why? why not NSObject?
打印数组的超类时,我希望看到NSObject
,但会打印NSArray
。实际上我打算在打印数组的类时看到NSArray
。为什么这样工作?有人可以解释一下吗?
答案 0 :(得分:5)
NSArray
的结构比NSObject
的简单继承更复杂,因为NSArray
是类群。您可以在https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/ClassClusters/ClassClusters.html
答案 1 :(得分:0)
如果nslog超类其打印NSObject
Class superclass = [NSArray superclass];