copy & mutableCopy

不可变对象执行不可变拷贝( copy )就是浅拷贝;

如果执行拷贝时,只要有可变的无论是可变的对象还是可变拷贝( mutableCopy )就是深拷贝;

只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝;

copy 创建的是不可变副本( NSString NSArray NSDictionary );

mutableCopy 创建的是可变副本( NSMutableString NSMutableArray NSMutableDiction );

shallow copy 浅拷贝 ( 指针拷贝 ):相当于做了一次 retain 操作 引用计数器+1没有产生新的对象 源对象和副本对象嗾使同一个对象!!

deep copy 深拷贝 ( 内容拷贝 ) : 源对象和副本对象是两个不同的对象,源对象的计数器不变,副本对象计数器+1 ( 产生了一个新的对象 );

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容