从实例获取类的名称

Rob*_*bin 137 iphone class objective-c instance classname

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

CiN*_*iNN 379

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

  • 倾向于回答问题,以便googlers可以得到答案,而不是预期需要. (33认同)
  • 记得`#import <objc/objc-runtime.h>`能够在实例上调用类. (2认同)

kub*_*ubi 28

如果您只想测试一个对象,看它是否是某个类的类型

BOOL test = [self isKindOfClass:[SomeClass class]];
Run Code Online (Sandbox Code Playgroud)


Kat*_*lon 18

从班级本身

-(NSString *) className
{
    return NSStringFromClass([self class]);
}
Run Code Online (Sandbox Code Playgroud)

  • 绝对不想激怒您,但这是您个人资料中第二个与 iOS 相关的答案。在我看来,我们只能在实例的实现中将其称为“自我”。您是否会捍卫这一点,因为它大大增加了三年前已接受的答案? (2认同)
  • 除了麻烦之外,这对答案没有任何增加。 (2认同)

Lal*_*hna 5

对象:

NSStringFromClass([instance class])
Run Code Online (Sandbox Code Playgroud)

迅速

从实例:

String(describing: YourType.self)
Run Code Online (Sandbox Code Playgroud)

来自类型:

String(describing: self)
Run Code Online (Sandbox Code Playgroud)