0

有谁知道如何在 IOS 中获取类成员变量的值?

我尝试使用 LLDB 在类成员变量中调试 NSArray。

在我运行这个之后

__cellDataShadowArray2D = [[NSArray alloc] initWithObjects:[NSArray arrayWithObjects:obj1, obj2, nil], nil];

当我使用 LLDB(打印对象)检查值时,我总是得到这个。

(lldb) po __cellDataShadowArray2D
(NSArray *) $66 = 0x001e8894 <object returned empty description>

(lldb) p __cellDataShadowArray2D
(NSArray *) $67 = 0x001e8894

(lldb) po [__cellDataShadowArray2D count]
2012-04-24 10:10:38.535 SOME [61985:15803] -[__NSCFConstantString count]: unrecognized selector sent to instance 0x1e8894
(id) $68 = 0x00000000 <nil>

(lldb) po [__cellDataShadowArray2D retainCount]
(id) $69 = 0xffffffff [no Objective-C description available]

(lldb) p (int) [__cellDataShadowArray2D retainCount]
(int) $70 = -1

(lldb) p (int) [__cellDataShadowArray2D count]
2012-04-24 10:11:31.333 SOME [61985:15803] -[__NSCFConstantString count]: unrecognized selector sent to instance 0x1e8894
(int) $71 = 0
4

3 回答 3

1
  • 确保在进行测试之前实际评估了代码行。

很明显 __cellDataShadowArray2D 指向一个已编译常量字符串的空实例;@""。这意味着它不能是过度释放或类似的东西;这意味着分配尚未发生(或者您正在尝试调试优化的代码并且调试器由于优化而感到困惑)。

  • 非对象类型的 po 没有意义

  • retainCount没用。不要叫它。

于 2012-04-25T16:47:12.737 回答
0

这可能会有所帮助:https ://devforums.apple.com/thread/142235?start=0&tstart=0

于 2012-04-24T01:56:22.907 回答
0

这绝对是一个 LLDB 问题。我也有同样的情况,根本无法调试。我切换回GDB,没问题

于 2012-05-14T11:34:55.860 回答