在Objective-C中比较'Class'与其他'Class'

Kev*_*tre 11 iphone cocoa objective-c

是否存在与' isKindOfClass: ' 类似的函数,用于将"类"与另一个类进行比较(即,不构造任一类的实例).例如,给定:

Class class = NSClassFromString(@"NSNumber");

[NSNumber isKindOfClass:class]; // YES
[NSString isKindOfClass:class]; // NO
Run Code Online (Sandbox Code Playgroud)

谢谢!

Geo*_*lly 22

+ (BOOL)isSubclassOfClass:(Class)aClass

Class theClass = NSClassFromString(@"NSNumber");

if ([NSNumber class] == theClass) {
    // YES
}
Run Code Online (Sandbox Code Playgroud)

一个类的实例永远不会超过1个,这就是为什么==你正在寻找的运算符.


Dav*_*ong 5

是的,你可以这样做:

[NSNumber isSubclassOfClass:class]; //YES
[NSString isSubclassOfClass:class]; //NO
Run Code Online (Sandbox Code Playgroud)

这些是类方法NSObject.