iOS

iOS - 数组的深浅拷贝

2018-12-12  本文已影响14人  神灬渐入嘉靜

浅拷贝是指针拷贝,深拷贝是内容拷贝。
copy拷贝出来的都是不可变对象;
mutableCopy拷贝出来的都是可变对象;

NSMutableArray用strong修饰,不是copy。
使用copy的话类型会变为NSArray,之后再使用到NSMutableArray的方法就会引起崩溃

NSArray用copy修饰,不是strong。
使用strong修饰的话就只是强引用,如果此时赋值了一个NSMutableArray,那么这个数组的类型就变为NSMutableArray了,可以调用NSMutableArray的方法,失去了不可变的意义。

NSArray的copy为浅拷贝,mutableCopy为深拷贝。
NSMutableArray的copy和mutableCopy都是深拷贝。

上一篇下一篇

猜你喜欢

热点阅读