深浅复制
- 1.浅复制:指针的复制
- 2.深复制:内容的复制
主要有两个关键字 copy 和mutablecopy
1.对于基本类型 判断深浅方法
1.只要=右边从创建到赋值,至少包含一个NSMutable便会重新生成一个对象。如果对一不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝)。但是copy返回的对象是不可变.
2.对于自定义对象的copy和mutableCopy
首先必须遵守NSCopying,NSMutableCopying协议,不然当执行copy和mutableCopy时会崩溃!
3.容器类型
- 总结
1.对于基本类型 copy是浅复制 mutablecopy是深复制
2.对于容器集合类型 可变不可变copy都是深复制 但是对于可变的如果 用copy的话copy过来是一个不可变的,这样会导致修改是崩溃
项目中切记勿对可变集合copy这样可能在操作新指针指向的对象时候回崩溃。