Подтвердить что ты не робот

Сравнение "класса" с другим "классом" в Objective-C

Существует ли сопоставимая функция с isKindOfClass: 'для сравнения "класса" с другим (т.е. без создания экземпляра любого класса). Например, данный:

Class class = NSClassFromString(@"NSNumber");

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

Спасибо!

4b9b3361

Ответ 1

+ (BOOL)isSubclassOfClass:(Class)aClass

и

Class theClass = NSClassFromString(@"NSNumber");

if ([NSNumber class] == theClass) {
    // YES
}

Существует не более одного экземпляра класса, поэтому == - это оператор, который вы ищете.

Ответ 2

Да, вы можете сделать:

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

Это методы класса на NSObject.