天天看点

NSArray、NSMutableArray的copy、mutableCopy

对于NSArray和NSMutableArray的copy问题,有两个点需要确定,一个是复制后数组是否可变,二是复制操作是复制的指针还是复制的内容(浅拷贝、深拷贝)。

总结如下(前提,数组中内容是NSString等基本数据类型,如果是自定义类型,则需要看是否实现NSCopy协议以及具体实现方法):

对于不可变数组:copy后仍然不可变、只复制指针(浅拷贝)、mutableCopy后变为可变数组并且复制内存(深拷贝)

对于可变数组:copy后不可变、复制内存(深拷贝)、mutableCopy后仍为可变数组并且复制内存(深拷贝)