代码之家  ›  专栏  ›  技术社区  ›  Kevin Sylvestre

目标C中“类”与其他“类”的比较

  •  11
  • Kevin Sylvestre  · 技术社区  · 15 年前

    可比函数是否与' isKindOfClass: “存在用于将“class”与另一个“class”进行比较(即,不构造任何类的实例)。例如,给定:

    Class class = NSClassFromString(@"NSNumber");
    
    [NSNumber isKindOfClass:class]; // YES
    [NSString isKindOfClass:class]; // NO
    

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  21
  •   Georg Schölly Crazy Developer    15 年前

    + (BOOL)isSubclassOfClass:(Class)aClass

    Class theClass = NSClassFromString(@"NSNumber");
    
    if ([NSNumber class] == theClass) {
        // YES
    }
    

    类的实例永远不会超过1个,这就是为什么 == 是你要找的接线员。

        2
  •  5
  •   Dave DeLong    15 年前

    是的,你可以这样做:

    [NSNumber isSubclassOfClass:class]; //YES
    [NSString isSubclassOfClass:class]; //NO
    

    这些是上的类方法 NSObject .