po命令有点无用,至少除非有一些符文需要强制转换才能使它有用,在这种情况下它们是什么?
例如,请使用以下代码:
MyClass *myClass = ...
NSLog(@"stuff: %@", myClass.stuff);
如果在Xcode中运行此代码并尝试调试,那么po的行为如下:
(gdb) po myClass
<MyClass: 0xee34567>
(gdb) po myClass.stuff
There is no member named stuff
为什么会这样做。有一个名为stuff的属性,NSLog看到它没有问题。那么如何检查Xcode中的成员变量,我知道这个问题之前已经在这里多次被问过,但在阅读之后我仍然找不到这样做的好方法。
答案 0 :(得分:0)
这个答案专门针对目标C. po
仅适用于ObjC对象,所以我假设这就是你在这里所要求的。
你试过了吗?
po [myClass stuff]
这对我来说很好 - 假设stuff
是属性。
po myObj
相当于调用[myObj description]
。如果要使用po
列出特定对象的所有ivars,则必须为其类实现合适的description
方法。我不知道列出类的ivars的任何自动机制。至少如果你正在处理房产,可能会有。
这也值得一读:gdb for Objective C。