我试图使用-isKindOfClass:
来测试类类型,但当我将类类型存储在变量中时,它对我不起作用。
下面是一个例子。我错过了什么?
@interface MyClass : NSObject
@end
@implementation MyClass
@end
Class classType = [MyClass class];
[classType isKindOfClass:[MyClass class]]; // returns NO
classType == [MyClass class]; // returns YES
问题是MyClass不是从MyClass继承的。
isKindOfClass
按照您将其用作实例方法时所期望的方式工作:
[[classType new] isKindOfClass:[MyClass class]]; // YES
但当您将其用作类方法时,它会测试继承:
[classType isKindOfClass:[NSObject class]]; // YES
如果您想知道classType
是否是[MyClass class]
,请使用==
,就像您正在做的一样。