从实例获取类的名称

时间:2010-02-07 17:31:53

标签: iphone objective-c class instance classname

我有以下问题:我得到一个传递的类的实例,并想知道这个实例的类的名称。怎么弄这个?

7 个答案:

答案 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)
}