Ios 如何测试Objective-C中的类类型?
我试图使用Ios 如何测试Objective-C中的类类型?,ios,objective-c,Ios,Objective C,我试图使用-isKindOfClass:测试类类型,但当我将类类型存储在变量中时,它对我不起作用 这里有一个例子。我错过了什么 @interface MyClass : NSObject @end @implementation MyClass @end Class classType = [MyClass class]; [classType isKindOfClass:[MyClass class]]; // returns NO classType == [MyClass clas
-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 isKindOfClass:[NSObject class]]; // YES
如果您想知道
classType
是否为[MyClass]
,请使用==
,就像您正在做的那样。问题是我需要测试基类。我知道问题是什么。我已经解释了你需要做什么。好了,我现在明白了!如果不启动类的对象,就无法进行此测试?我没有这么说。您是使用类对象的人。我只是解释一下你可以用class对象做什么。是的,我真的很欣赏这些评论,但我不明白为什么存储为变量的类类型返回NO,而该类的实例返回Yes。
[classType isKindOfClass:[NSObject class]]; // YES