У меня есть следующая проблема: я получаю экземпляр переданного класса и хочу знать имя класса этого экземпляра. Как это получить?
Получение имени класса из экземпляра
Ответ 1
NSStringFromClass([instance class])
должен сделать трюк.
Ответ 2
Если все, что вы хотите сделать, это проверить объект, чтобы увидеть, является ли он типом определенного класса
BOOL test = [self isKindOfClass:[SomeClass class]];
Ответ 3
Внутри самого класса
-(NSString *) className
{
return NSStringFromClass([self class]);
}
Ответ 4
Просто добавьте категорию:
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
Затем используйте следующий код:
NSString *className = [[SomeObject new] className];
или даже:
NSString *className = SomeObject.new.className;
Чтобы использовать его в любом месте, добавьте категорию в файл YourProject.pch.
Ответ 5
Вы также можете использовать [[self class] description]
Ответ 6
Если вы смотрите, как получить имя класса в Swift, вы можете использовать отображение, чтобы получить информацию об объекте.
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
Ответ 7
ObjC:
NSStringFromClass([instance class])
СВИФТ
Из примера:
String(describing: YourType.self)
От типа:
String(describing: self)