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()
。