Проверить, является ли объект типом класса

У меня есть метод, который получает NSArray объектов Class ], и мне нужно проверить, все ли они относятся к типу Class , сгенерированному с помощью приведенный ниже код:

NSMutableArray *arr = [[NSMutableArray alloc] init];

[arr addObject:[NSObject class]];
[arr addObject:[NSValue class]];
[arr addObject:[NSNumber class]];
[arr addObject:[NSPredicate class]];
[arr addObject:@"not a class object"];

Проблема в том, что Class не является классом objective-c, это структура, поэтому я не могу использовать только

    for (int i; i<[arr count]; i++) {
        Class obj = [arr objectAtIndex:i];

        if([obj isKindOfClass: [Class class]]) {
            //do sth
        }
    }

Итак, мне нужно проверить, есть ли obj переменная относится к типу Class , я полагаю, она будет непосредственно в C , но как я могу это сделать?

Будет плюсом, если answer также предоставляет способ проверить, является ли элемент в массиве NSObject , как элементы в примере кода, NSPredicate также будет истинным для проверка NSObject

34
задан Felipe Sabino 30 June 2011 в 15:21
поделиться