Как мне проверить тип класса в Objective- C? - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь использовать -isKindOfClass: для проверки типа класса, но он не работает для меня, когда я сохраняю тип класса в переменной.

Вот пример. Чего мне не хватает?

@interface MyClass : NSObject
@end

@implementation MyClass
@end

Class classType = [MyClass class];

[classType isKindOfClass:[MyClass class]]; // returns NO

classType == [MyClass class]; // returns YES

1 Ответ

1 голос
/ 15 марта 2020

Проблема в том, что MyClass не наследуется от MyClass.

isKindOfClass работает так, как вы ожидаете, когда используете его как экземпляр метод:

[[classType new] isKindOfClass:[MyClass class]]; // YES

Но когда вы используете его как метод class , он проверяет наследование:

[classType isKindOfClass:[NSObject class]]; // YES

Если вы хотите узнать, является ли classType [MyClass class] , используйте ==, точно так же, как вы делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...