Типы классов NSString - PullRequest
       0

Типы классов NSString

1 голос
/ 25 июня 2010

Можно ли получить имя класса в строку, например:

NSString *kls = (NSString *)[self.name class];
NSLog(@"%@", [kls isKindOfClass:[NSString class]] ? @"YES" : @"NO");

Я могу сделать: NSString *kls = [[[NSString alloc]initWithFormat:@"%@", [self.name class]]autorelease];

но мне это кажется немного скучным. Это не для какой-то конкретной задачи, я просто пытаюсь узнать больше о языке по ходу дела.

Ответы [ 2 ]

1 голос
/ 26 июня 2010

NSString * classNameStr = NSStringFromClass ([anObject class]);

0 голосов
/ 25 июня 2010

На Mac, если ваш объект наследует от NSObject класса , а не просто от реализации NSObject протокола (последняя ситуация кажется маловероятной), вам следуетбыть в состоянии звонить:

NSString* str = [anObject className];

className определяется в связи с поддержкой сценариев Mac, поэтому он недоступен в версии для iOS NSObject.В этом случае вы, вероятно, можете сделать что-то вроде этого:

NSString* str = [[anObject class] description];

(хотя на самом деле я пробовал это только на Mac, поэтому возможно, что он может работать неправильно на устройстве iOS.)

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