我试图从类对象本身获取类的字符串名称.

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

我已经找到了object_getClassName(id obj)个,但这需要向它传递一个实例,在我的情况下,这是不必要的工作.

那么,如何从类对象中获取字符串,并从实例中获取not

推荐答案

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

你甚至可以反过来:

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

Objective-c相关问答推荐

目标 C:什么是(id)发件人?

Objective C 布尔数组

iphone 的 UIPopoverController 不工作?

如何在运行时向对象添加属性?

如何可靠地检测 iOS 9 上是否连接了外部键盘?

iOS 7 / Xcode 5:以编程方式访问设备启动图像

如果用户点击屏幕键盘,我如何关闭键盘?

在 Xcode 中为无法识别的 Select 器创建断点

Objective C 代码是否有 github markdown 语言标识符?

在 viewDidAppear 之前无法正确设置框架

使用对象引用的 NSArray,我是显式释放数组中的所有对象还是仅释放数组本身?

Facebook 的 UIActivityViewController 不显示默认文本

如果目录不存在,是否有更安全的方法来创建目录?

UITableView configureCellForDisplay:forIndexPath 中的断言失败:

如何将小时数添加到 NSDate?

@dynamic 在 Objective-C 中做了什么?

获取最顶层的 UIViewController

如何在 UITextField 上自动打开键盘?

iPhone - dequeueReusableCellWithIdentifier 用法

公开只读但具有私有设置器的 Objective-C 属性