我有以下问题:我得到一个传递的类的实例,并想知道这个实例的类的名称。怎么弄这个?
答案 0 :(得分:367)
NSStringFromClass([instance class])
应该可以解决问题。
答案 1 :(得分:28)
如果您只想测试一个对象,看它是否是某个类的类型
BOOL test = [self isKindOfClass:[SomeClass class]];
答案 2 :(得分:16)
从班级本身开始
-(NSString *) className
{
return NSStringFromClass([self class]);
}
答案 3 :(得分:2)
只需添加一个类别:
NSString *className = [[SomeObject new] className];
然后使用以下代码:
NSString *className = SomeObject.new.className;
甚至:
{{1}}
要在任何地方使用它,请将类别添加到YourProject.pch文件中。
答案 4 :(得分:1)
您也可以使用[[self class] description]
答案 5 :(得分:1)
OBJC:
NSStringFromClass([instance class])
SWIFT
来自实例:
String(describing: YourType.self)
来自类型:
String(describing: self)
答案 6 :(得分:0)
如果您正在查看如何在Swift中获取类名,您可以使用reflect来获取有关对象的信息。
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}