copy与mutableCopy
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了copy与mutableCopy相关的知识,希望对你有一定的参考价值。
不可变对象执行不可变拷贝(copy)就是浅拷贝
如果执行拷贝时 只要有可变的无论是可变对象还是可变拷贝(mutableCopy)就是深拷贝
只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!
copy 创建的是不可变副本(NSString , NSArray, NSDictionary)
mutableCopy 创建的是可变副本 (NSMutableString, NSMutableArray, NSMutableDictionary)
shallow copy 浅拷贝(指针拷贝):相当于做了一次retain操作 引用计数器加1 没有产生新的对象 源对象和副本对象是同一个对象!
deep copy 深拷贝(内容拷贝):源对象和副本对象是两个不同的对象,源对象的计数器不变,副本对象计数器加1(产生了一个新的对象)
以上是关于copy与mutableCopy的主要内容,如果未能解决你的问题,请参考以下文章
copy 与 retain的区别,以及copy与mutablecopy的区别
NSString NSMutableString copy mutableCopy retain weak strong
关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解
Foundation框架 之 NSFileManager 与 copy & mutableCopy