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

时间:2014-05-13 10:47:22

标签: ios objective-c xcode

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

我尝试将其投放到NSObject,但我收到了错误。

error: C-style cast from 'id' to 'NSObject' is not allowed

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

enter image description here

3 个答案:

答案 0 :(得分:6)

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

po [object class]

poexpression -o --的缩写,并打印表达式的 description


您的错误是由id是一个指针并且必须强制转换的事实引起的  NSObject *,而不是NSObject。所以这也可行:

p [(NSObject *)object class]

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

p (Class)[object class]

po是解决问题的最简单方法。

答案 1 :(得分:1)

您可以在命令窗口中输入此内容以打印到classname:

po NSStringFromClass([object class])

答案 2 :(得分:0)

这些答案都不适合我。所以FWIW我这样做:

  • 对象:po variableName.class
  • 斯威夫特:po type(of: variableName)