#objective-c #cocoa
#objective-c #cocoa
Вопрос:
Этот код
if ( [currentValue isKindOfClass:NSClassFromString(@"NSString")] ) {
CBDebug(@"this is a string");
хорошо работает, когда тип currentValue равен __NSCFString
но он не распознает строку, если тип __NSCFConstantString
Как я могу это исправить? (Я на OSX)
Спасибо
Ответ №1:
Попробуйте это:
if ( [currentValue isKindOfClass:[NSString class]] ) {
CBDebug(@"this is a string");
}
Ответ №2:
Вместо проверки текстовой строки класса, попробуйте следующее:
[myObject isKindOfClass:[NSString class]]
Ответ №3:
Попробуйте это [obj isKindOfClass:[NSString class]];
Обычно это требуется NSClassFromString
только при тестировании имен классов, которые могут быть вам недоступны.
Примечание: Будьте осторожны при использовании isKindOfClass:
метода для объектов, представленных кластером классов. Из-за природы кластеров классов объект, который вы получаете обратно, не всегда может быть того типа, который вы ожидали. isKindOfClass:
вернет YES, если получатель где-то наследует от класса, переданного в качестве аргумента.