Получает имя класса из экземпляра


У меня есть следующая проблема: я получаю экземпляр переданного класса и хочу знать имя класса этого экземпляра. Как это сделать?

6 128

6 ответов:

NSStringFromClass([instance class]) следует сделать трюк.

если все вы хотите сделать, это проверить объект, чтобы увидеть, если это тип определенного класса

BOOL test = [self isKindOfClass:[SomeClass class]];

из самого класса

-(NSString *) className
{
    return NSStringFromClass([self class]);
}

просто добавьте категорию:

NSObject+Extensions.h
- (NSString *)className;

NSObject+Extensions.m
- (NSString *)className {
    return NSStringFromClass(self.class);
}

затем используйте следующий код:

NSString *className = [[SomeObject new] className];

или еще:

NSString *className = SomeObject.new.className;

чтобы использовать его в любом месте, добавьте категорию в свой проект.файл PCH.

вы также можете использовать [[self class] description]

Если вы ищете, как получить classname в Swift вы можете использовать reflect, чтобы получить информацию об объекте.

let tokens = split(reflect(self).summary, {  == "." })
if let typeName = tokens.last {
    println(typeName)
}