如何在Xcode调试器中记录类名

Raf*_*fAl 1 xcode objective-c ios

我有一个类型的对象id.该对象可以是我的自定义类实例之一.有没有办法记录它的类名?

我尝试将它投射到NSObject但我收到了一个错误.

error: C-style cast from 'id' to 'NSObject' is not allowed
Run Code Online (Sandbox Code Playgroud)

这里是控制台的完整输出:

在此输入图像描述

Mar*_*n R 6

对象的类同样是Objective-C 对象,因此请使用po而不是p:

po [object class]
Run Code Online (Sandbox Code Playgroud)

po是表达式的缩写,用于expression -o --打印表达式的描述.


你的错误是由一个事实引起的,id它必须被强制转换为 NSObject *,而不是NSObject.所以这也会起作用:

p [(NSObject *)object class]
Run Code Online (Sandbox Code Playgroud)

或者,按照lldb错误消息的建议,转换方法的返回类型:

p (Class)[object class]
Run Code Online (Sandbox Code Playgroud)

po对您的问题来说,这是最简单的解决方案.