从实例获取类的名称

我有以下问题:我得到一个类的实例通过,想知道这个实例的类的名称。 如何得到这个?

NSStringFromClass([instance class])应该做的伎俩。

如果你想要做的就是testing一个对象,看它是否是某个类的types

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

从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; 

要在任何地方使用它,请将该类别添加到YourProject.pch文件中。

你也可以使用[[self class] description]

如果您正在寻找如何在Swift中获取类名,则可以使用reflect来获取有关对象的信息。

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