前提:使用这两个方法都需要实现NSCopying 或者NSMutableCopying协议。否则会crash。
copy与mutableCopy区别:
1)无论是对可变对象的①容器类(NSMutableArray、NSMutableDictionary...)或者②非容器类(NSMutableString..)/不可变对象的③容器类(NSArray、NSDictionary...)或者④非容器类(NSString...) 进行copy操作之后得到的都是不可变对象,进行mutableCopy得到的是可变对象。
2)对②进行copy和mutableCopy,实质都是内容拷贝(深拷贝)。
对④进行copy是指针拷贝(浅拷贝),进行mutableCopy是内容拷贝(深拷贝)。
3)对①进行copy和mutableCopy,实质都是内容拷贝(深拷贝)。
对③进行copy是指针拷贝(浅拷贝),进行mutableCopy是内容拷贝(深拷贝)。
网友评论