在 iOS开发中 撇开 可变对象 和 不可变对象 空谈 copy 和 mutableCopy是没有意义的。
对于 不可变对象(NSString ,NSArray,NSDictionary)
copy 返回一个不可变对象(__NSCFConstantString)浅拷贝
mutableCopy 返回一个可变对象(__NSCFString)深拷贝
对于可变对象(NSMutableString,NSMutableArray,NSMutableDictionary)
copy 和 mutableCopy 都是深拷贝
NSMutableString copy 和 copy 返回的都是一个新的可变对象
NSMutableArray,NSMutableDictionary:copy返回一个不可变对象,mutableCopy 返回一个可变对象
扩展:
nsstring 的属性修饰词 使用 strong 和 copy的 区别:
对于不可变对象 strong 和 copy 是一样的
对于可变对象,strong 是 浅拷贝 copy 是 深拷贝
网友评论