我正在尝试从class对象本身获取一个类的字符串名称。
// For instance
[NSArray className]; // @"NSArray"
我已经找到了object_getClassName(id obj)
,但这需要将一个实例传递给它,在我的例子中,这是不必要的工作。
那么如何才能从类对象而不是实例中获取字符串呢?
发布于 2010-02-25 14:04:05
NSString *name = NSStringFromClass ([NSArray class]);
你甚至可以用另一种方式返回:
Class arrayClass = NSClassFromString (name);
id anInstance = [[arrayClass alloc] init];
发布于 2012-12-29 06:56:48
这里有一种不同的方法,只需稍微减少输入:
NSString *name = [NSArray description];
发布于 2017-09-27 02:11:59
考虑以下替代方案:
const char *name = class_getName(cls);
它的速度要快得多,因为它不必分配NSString对象并将ASCII码转换为任何NSString
表示形式。这就是NSStringFromClass()
的实现方式。
https://stackoverflow.com/questions/2331983
复制相似问题