当我试图查看 NSString 使用的内存时,我被卡住了:
我的 NSString theKey 在 lldb 中显示良好:
(lldb) p *theKey
(NSString) $5 = {
NSObject = {
isa = __NSCFConstantString
}
}
内容可见:
(lldb) po theKey
BBBBBBBBBB
我还获得了 NSString 对象的内存:
(lldb) fr v
(ViewController *const) self = 0x0897eb10
(SEL) _cmd = "viewDidLoad"
(NSString *) theKey = 0x00004664 @"BBBBBBBBBB"
关于 NSString 对象的内存,我只会得到奇怪的值:
(lldb) memory read 0x00004664
0x00004664: 50 93 87 01 c8 07 00 00 68 37 00 00 0b 00 00 00 P.......h7......
0x00004674: 50 93 87 01 c8 07 00 00 74 37 00 00 0b 00 00 00 P.......t7......
也就是说,一个 NSString 不是一个 char 数组,并且内存包含……是的……什么?如何找到存储在我的 NSString 中的字符的内存地址?