Objective-C类 - >字符串等:[NSArray的类名] - > @“的NSArray”
-
22-09-2019 - |
题
我想从类对象本身就是一个类的字符串名称。
// For instance
[NSArray className]; // @"NSArray"
我发现object_getClassName(id obj)
但是这需要一个实例来传递给它,并在我的情况是不必要的工作。
所以,我怎样才能从一个类对象的字符串,和的不的一个实例?
解决方案
NSString *name = NSStringFromClass ([NSArray class]);
您甚至可以回去的其他方式:
Class arrayClass = NSClassFromString (name);
id anInstance = [[arrayClass alloc] init];
其他提示
下面是一个不同的方式略少打字做到这一点:
NSString *name = [NSArray description];
考虑这个替代:
const char *name = class_getName(cls);
这是速度更快,因为它不必ALLOC的NSString对象,并转换ASCII到任何NSString
表示是。这是NSStringFromClass()
是如何实现的。
不隶属于 StackOverflow