objective-c - 在调试器中打印一个字符串显示它的地址,而不是它的内容

标签 objective-c debugging lldb

为什么我看到的是内存地址,而不是我刚添加到 NSMutableArray 的“测试”字符串?如何查看实际对象内容?

(lldb) p [autocompleteUrls addObject:@"test"]
(lldb) p [autocompleteUrls objectAtIndex:0]
(id) $8 = 0x00006e28

我也试过将它转换为 NSString 但出现了错误

(lldb) p (NSString*)autocompleteUrls[1]
error: C-style cast from 'id' to 'NSString' is not allowed

最佳答案

在 LLDB 中
“p”是“打印”非对象的快捷方式
“po”是打印对象的“print-object”的快捷方式

你可能想要的是:
“po autocompleteUrls”
这将打印 autocompleteUrls 对象的内容

"p [autocompleteUrls addObject:@"test"]"
打印返回 void 的方法调用的结果。

有关好的教程,请参阅 Cocoa Is My Girlfriend:Xcode LLDB Tutorial

关于objective-c - 在调试器中打印一个字符串显示它的地址,而不是它的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969745/

相关文章:

c++ - 数据库 : Unable to resolve breakpoint in Hello World example

objective-c - 如何从数组数组构建数组

iphone - 从 iPhone 相册导入和保存照片的正确方法是什么?

ruby - JetBrains RubyMine 3.2.4 调试器不工作

javascript - if/else 语句仅返回最终条件的问题

c++ - LLDB如何找到内联函数?

objective-c - 强制 obj-c 在访问 nil 属性时抛出异常

objective-c - 无法使用类型为 'void *' 的右值初始化类型为 'void *const *' 的变量

ios - 如何在 IOS 中使用 mapkit 在 map 上显示用户

android - SampleSyncAdapter 断点不起作用