iOS基础知识--深拷贝浅拷贝

1、深拷贝和浅拷贝的区别就是对象地址是否相同,相同是浅拷贝,反之则是深拷贝

2、对于NSString对象,copy是浅拷贝、multableCopy是深拷贝,但是原对象改变,对新对象没有影响

3、对于NSArray对象,copy是浅拷贝,multableCopy是深拷贝,无论是深拷贝还是浅拷贝,对于数组元素都是浅拷贝

4、如果遵循了NSCopying协议,且实现了copyWithXZone方法,使用initWithArray: copyItems:可以实现数组元素的深拷贝

 

属性使用copy和strong的区别

1、如果赋值的对象都是不可变的,copy和strong修饰的属性其指向的地址都是同一个

2、如果赋值的对象是可变的,copy是深拷贝,赋值对象改变,不会改变自身

3、如果赋值的对象是可变的,strong修饰的属性只是引用了,赋值对象改变,自身也会改变

4、我们一般采用copy修饰字符串,防止修改NSMutableString的字符串导致原来的数据被修改掉

 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值