我有一个id
类型的对象。该对象可以是我的自定义类实例之一。有没有办法可以记录它的类名?
我尝试将其投放到NSObject
,但我收到了错误。
error: C-style cast from 'id' to 'NSObject' is not allowed
这里是控制台的完整输出:
答案 0 :(得分:6)
对象的类同样是Objective-C 对象,因此请使用po
而不是p
:
po [object class]
po
是expression -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)