如何使用po或等效的方法来检查控制台或Xcode中的iVars?

时间:2012-01-27 20:32:52

标签: xcode

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中的成员变量,我知道这个问题之前已经在这里多次被问过,但在阅读之后我仍然找不到这样做的好方法。

1 个答案:

答案 0 :(得分:0)

这个答案专门针对目标C. po仅适用于ObjC对象,所以我假设这就是你在这里所要求的。

你试过了吗?

po [myClass stuff]

这对我来说很好 - 假设stuff是属性。

po myObj相当于调用[myObj description]。如果要使用po列出特定对象的所有ivars,则必须为其类实现合适的description方法。我不知道列出类的ivars的任何自动机制。至少如果你正在处理房产,可能会有。

这也值得一读:gdb for Objective C