美文网首页
(IOS)深拷贝和浅拷贝

(IOS)深拷贝和浅拷贝

作者: rightmost | 来源:发表于2018-12-28 14:58 被阅读0次

 1、浅拷贝

     浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间,当内存销毁的时候,指向这片内存的几个指针需要重新定义才可以使用,要不然会成为野指针。

 浅拷贝就是拷贝指向原来对象的指针,使原对象的引用计数+1,可以理解为创建了一个指向原对象的新指针而已,并没有创建一个全新的对象。

  2、深拷贝

      深拷贝是指拷贝对象的具体内容,而内存地址是自主分配的,拷贝结束之后,两个对象虽然存的值是相同的,但是内存地址不一样,两个对象也互不影响,互不干涉。

深拷贝就是拷贝出和原来仅仅是值一样,但是内存地址完全不一样的新的对象,创建后和原对象没有任何关系。

    3、总结:

    深拷贝就是内容拷贝,浅拷贝就是指针拷贝。本质区别在于:

是否开启新的内存地址

是否影响内存地址的引用计数

   4、NSmutable*与NS*的深浅拷贝:

相关文章

网友评论

      本文标题:(IOS)深拷贝和浅拷贝

      本文链接:https://www.haomeiwen.com/subject/mjoslqtx.html