OC语法--问NSString属性声明中的copy和retain具体区别

问NSString属性声明中的copy和retain具体区别
copy是将源对象release然后新对象copy在付给源对象

retain是将源对象release然 后新对象retain再付给源对象

根本区别就是对象进行深拷贝时copy要开辟新的存储空间,浅拷贝时效果相同。引用计数方面retain是源对象引用计数加1,copy当

是浅复制时源对象引用计数加1,深复制时源对象引用计数不变,新对象引用计数加1.

   NSString *str = @"hello";

  // copy原模原样的复制

    NSMutableString *strM = [str copy];

//    [strM appendString:@" 123"];是不能运行的 因为copy只是原样复制的,内存地址是一样的。并不能认为换了类型指向了他,他就是这个东西

深复制:要变

浅复制:不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值