@property (nonatomic, strong) NSString *myStrongString;@property (nonatomic, copy) NSString *myCopyString;- (void)stringTest { NSMutableString *mutableStr = [NSMutableString stringWithFormat:@"https://"]; self.myStrongString = mutableStr; self.myCopyString = mutableStr; NSLog(@"mutableStr:%p,%p", mutableStr,&mutableStr); NSLog(@"strongString:%p,%p", _myStrongString, &_myStrongString); NSLog(@"copyString:%p,%p", _myCopyString, &_myCopyString); //---------------分割线---------------------[mutableStr appendString:@"devthinking.com"]; NSLog(@"strongString:%p,%p", _myStrongString, &_myStrongString); NSLog(@"copyString:%p,%p", _myCopyString, &_myCopyString);}打印日志如下:
2016-11-09 14:14:18.532 DemoCollectOC[92929:1731791] mutableStr:0x60800026fe00,0x7fff549c9be82016-11-09 14:14:18.532 DemoCollectOC[92929:1731791] strongString:0x60800026fe00,0x7ff0954023082016-11-09 14:14:18.533 DemoCollectOC[92929:1731791] copyString:0x6080004234a0,0x7ff0954023102016-11-09 14:14:18.533 DemoCollectOC[92929:1731791] strongString:0x60800026fe00,0x7ff0954023082016-11-09 14:14:21.039 DemoCollectOC[92929:1731791] copyString:0x6080004234a0,0x7ff095402310结论
以NSString为例
NSString *str = @"a";先打印出地址:
(lldb) p str(__NSCFConstantString *) $0 = 0x0000000109b3aa30 @"a"再用x/3gx命令查看内存:
(lldb) x/3gx 0x0000000109b3aa300x109b3aa30: 0x000000010bf3e348 0x00000000000007c80x109b3aa40: 0x0000000109b276db再查看0x0000000109b276db中的地址即为字母a的Ascii码实际存在地址:
(lldb) p (char*)0x0000000109b276db(char *) $2 = 0x0000000109b276db "a"可以直接在变量上右键上打开view memory of “*str”, 这就打开memory查看,在Address里面输上0x0000000109b276db,即可查看每个字节的内容。
总结
以上就是这篇文章的全部内容,希望本文的内容对各位iOS开发者们能有所帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。