关于iOS的浅拷贝和深拷贝。
定义:
浅拷贝:浅拷贝是对内存地址的复制。让目标对象的指针和源对象的指针指向同一片内存空间。原对象的引用计数+1。可以理解成创建了一个指向原对象的新指针而已,并没有创建一个新的对象。
深拷贝:深拷贝是指拷贝对象的具体内容,内存地址是自主分配,拷贝结束之后,对象的值是相同的,但是内存地址不一样。两个对象互不影响,互不干涉。
网上有大佬整理出这样的一张图:
注:关于数组的深浅拷贝,不管是深拷贝还是浅拷贝,数组中的元素,拷贝前后的值和地址都是不变的。
关于iOS的浅拷贝和深拷贝。
定义:
浅拷贝:浅拷贝是对内存地址的复制。让目标对象的指针和源对象的指针指向同一片内存空间。原对象的引用计数+1。可以理解成创建了一个指向原对象的新指针而已,并没有创建一个新的对象。
深拷贝:深拷贝是指拷贝对象的具体内容,内存地址是自主分配,拷贝结束之后,对象的值是相同的,但是内存地址不一样。两个对象互不影响,互不干涉。
网上有大佬整理出这样的一张图:
注:关于数组的深浅拷贝,不管是深拷贝还是浅拷贝,数组中的元素,拷贝前后的值和地址都是不变的。