【问题标题】:XCode GDB syntax for cell.detailTextLabel.text?cell.detailTextLabel.text 的 XCode GDB 语法?
【发布时间】:2012-09-07 00:25:30
【问题描述】:

我有一个典型的 UITableView 应用程序,其中包含一些带有一些标签的单元格..

如何使用 GDB 显示以下内容?我已经在下面尝试过,但无法弄清楚语法应该是什么。

编辑:我希望能够在调试器遇到断点时显示变量的内容

(gdb) p (NSString*)cell.detailTextLabel.text
There is no member named detailTextLabel.
(gdb) p (NSString*)[cell.detailTextLabel.text]
A syntax error near end of expression.
(gdb) p (NSString*)[cell detailTextLabel text]
A syntax error in expression, near `]'.
(gdb) p (NSString*)[cell detailTextLabel]
$2 = (NSString *) 0x0
(gdb) p (NSString*)[[cell detailTextLabel] text]
$3 = (NSString *) 0x0

谢谢

【问题讨论】:

    标签: xcode uitableview nsstring gdb


    【解决方案1】:

    您不能在调试器中使用点符号,因此您必须编写 [[cell detailTextLabel] text] 而不是 cell.detailTextLabel.text。并尝试使用命令po 而不是p,所以po [[cell detailTextLabel] text]。希望这会有所帮助。

    【讨论】:

    • 仍然不适合我:(gdb) po [[cell detailTextLabel] text] 无法打印 NIL 对象的描述。 (gdb) po [[cell detailTextLabel] text] 无法打印 NIL 对象的描述。 (gdb) po (NSString*)[[cell detailTextLabel] text] 无法打印 NIL 对象的描述。 (gdb) po (NSString)[[cell detailTextLabel] text] 值无法转换为整数。
    • 那么这意味着在某些时候您的标签或您的单元格正在被释放,这意味着当您尝试打印其内容时它是nil。尝试po cell 看看单元格是否为零。
    • 是的,我认为你是对的 - 我最近更改了标签的分配以使用 NSString * 的副本,所以看起来就是这样。有趣的是,我还发现我可以在 C 结构上使用点表示法。感谢您的帮助 - 我会接受您的回答。
    【解决方案2】:

    我不确定这是否是您的意思,但要记录您可以使用的标签文本:

    NSLog(@"%@",cell.detailTextLabel.text);
    

    【讨论】:

    • 感谢您的回答 - 它实际上是我想用来查看变量 (gdb) 的调试器。您的建议确实会将输出记录到调试器窗口,但我想在遇到断点时检查不同的变量。抱歉 - 我应该提到我在帖子中使用断点的事实。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2015-02-02
    相关资源
    最近更新 更多