在调试器中打印字符串会显示其地址,而不是其内容

udi*_*dit 3 debugging objective-c lldb

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

(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

zap*_*aph 6

在LLDB中,
"p"是"打印"非对象
的快捷方式"po"是打印对象的"打印对象"的快捷方式

你可能想要的是:
"po autocompleteUrls"
那将打印autocompleteUrls对象的内容

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

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