【发布时间】:2012-05-23 07:24:38
【问题描述】:
调试时,我需要检查一个私有NSString 成员的值,例如名为str。之后:
self.str = xxxxxxx;
我在控制台中输入了“po self.str”,但只得到了“(NSString *) $37 = 0x00000000”
所以我尝试了:
NSLog("%@", self.str);
...然后我看到了字符串值。
为什么我不能使用命令“po”检查var的值?
现在我知道这是因为我使用lldb 作为调试器,而不是gdb。所以“po”(print-object)命令只能显示指针的地址。在使用 lldb 时是否有任何关于打印对象描述的解决方案?
更新:我发现self 本身不可用。我猜这个问题与类实例有关,它是一个静态变量。这就是po找不到self的指针的原因吗?
【问题讨论】:
-
你的 self.str 为空:0x00000000。
-
仅供参考,这是 gdb-to-lldb 命令的映射,显示语法:lldb.llvm.org/lldb-gdb.html
-
该属性可能在您尝试打印、调试并检查它是否仍然存在时已释放。
标签: objective-c nslog po