我想从类对象本身就是一个类的字符串名称。

// 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()是如何实现的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top