Objective-C类 – >string像: – > @“NSArray”

我想从类对象本身获得一个类的string名称。

// For instance [NSArray className]; // @"NSArray" 

我发现object_getClassName(id obj)但需要一个实例传递给它,在我的情况下,这是不必要的工作。

那么如何从类对象中获取string,而不是实例呢?

 NSString *name = NSStringFromClass ([NSArray class]); 

你甚至可以用另一种方式回去:

 Class arrayClass = NSClassFromString (name); id anInstance = [[arrayClass alloc] init]; 

这里有一个不同的方式来打字:

 NSString *name = [NSArray description]; 

考虑这个select:

 const char *name = class_getName(cls); 

它要快得多,因为它不需要分配NSString对象,并将ASCII转换为NSString表示。 这就是如何实现NSStringFromClass()