复制(copy)

 在进行数组拷贝时发现个蛋疼的问题:将NSArray拷贝至NSMutableArray后 可变数组的对象再也无法进行动态处理(插入等操作),会导致crash,查资料后发现

有不同的方法来进行对象的复制。

  1)浅层复制(shallow copy):不复制引用对象,新复制的对象只指向现有的引用对象。 NSArray类的copy方法是浅层复制,所以当你把以个NSArray的对象复制给一个NSMutableArray对象时,就会造成可变数组的对象不可变,即当使用插入、替换等相应的方法时均会出现调试错误。就因为你复制的对象只复制指向引用对象的指针,而不复制引用对象本身。

     2)深层复制(deep copy):将复制所有的引用对象。如果NSArray的copy方法是深层复制,则在复制操作完成后,会再创建个对象来存放所复制的引用对象。

你可以根据特定类的需要,自由混搭深层复制和浅层复制你的组合对象。

转载于:https://www.cnblogs.com/kelisi-king/archive/2013/05/15/3080151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值