您的位置:首页 > 大数据 > 人工智能

点语法中 retain 和 copy的区别

2016-08-05 11:09 197 查看

验证点语法中 retain 和 copy的区别

retain情况下,str的内容不管怎么变化,car.name指向的内存地址不变 ; copy情况下,str的内容改变了,car.name指向的对内存会复制一份出来,因此内存地址是变化的 ; 如果str不是可变的NSMutableString,不管是retain还是copy,只要str的值发生变化,指向的堆内存都会改变

NSMutableString *str = [NSMutableString stringWithString:@"hello"];
Car *car = [[Car alloc] init];
car.name = str;
NSLog(@"car = %p" , car.name);
NSLog(@"car.name1 = %@" , car.name);
[str appendString:@" world"];
car.name = str;
NSLog(@"car = %p" , car.name);
NSLog(@"car.name2 = %@" , car.name);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: