以数组为例,来记录一下Copy 和 mutableCopy的使用细节。
我们知道可变数组和不可变数组之间的转化可以通过下面的方式:
[NSMutableArray copy] --> NSArray
[NSArray mutableCopy] --> NSMutableArray
我们也知道:
(图片来自网络)
那么当我们调用数组的mutableCopy方法时,是否将数组中所包含的对应也深拷贝了呢?
testClass* class0 = [testClass new];
class0.name = @(1).stringValue;
testClass* class1 = [testClass new];
class1.name = @(11).stringValue;
testClass* class2 = [testClass new];
class2.name = @(111).stringValue;
NSArray* arr = @[class0,class1,class2];
NSMutableArray* arr2 = [arr mutableCopy];
NSArray* arr3 = [arr copy];
看一下结果: