iOS 的深、浅拷贝通过一张图片能够很直观理解:
对于系统的非容器类对象,对不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝)。如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的。对于容器类规则也是相同,但是要注意的是容器内的元素全部都是浅拷贝,也就是说所有的元素拷贝的只是指针,内存没被复制。
iOS 的深、浅拷贝通过一张图片能够很直观理解:
对于系统的非容器类对象,对不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝)。如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的。对于容器类规则也是相同,但是要注意的是容器内的元素全部都是浅拷贝,也就是说所有的元素拷贝的只是指针,内存没被复制。