我怎么做:[obj isKindOfClass:[Class class]]

时间:2015-09-17 11:51:14

标签: ios objective-c

任务看起来很简单:检查元素是否为Class类型,但我不知道如何。 我拥有的是一个包含不同数据的数组。例如:

NSArray *arr = @[@"name", [NSArray class]];
NSLog(@"type:%@", [arr elementByClass:[Class class]]); //expecting here "type:NSArray"

我需要获得自定义类的第一个元素。所以这是我的NSArray类别方法:

- (id)elementByClass:(Class)elementClass {
    for (id obj in self) {
        if([obj isKindOfClass:elementClass]){
            return obj;
        }
    }
    return nil;
}

虽然它没有编译并因错误而失败:

  

“接收器类型'类'不是Objective-C类”

2 个答案:

答案 0 :(得分:3)

实际上,Class本身不是Objective-C对象。如果你真的想做你想做的事情,你可以:

#import <objc/runtime.h>

- (void)doSomething {
    NSArray *arr = @[@"name", [NSArray class]];
    NSLog(@"type:%@", [arr elementByClass:objc_getMetaClass("NSObject")]); //expecting here "type:NSArray"
}

我建议回答下一个问题作为进一步阅读: Are classes objects in Objective-C?

答案 1 :(得分:1)

您应该能够检查$("td > ol > li") 是否与您要查找的$("td").find("li") 完全相同:

[obj class]

我建议回答下一个问题作为进一步阅读: Are classes objects in Objective-C?

相关问题