(IOS)深拷贝和浅拷贝

 1、浅拷贝

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

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

  2、深拷贝

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

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

    3、总结:

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

是否开启新的内存地址

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在工作中,有时会涉及到深拷贝和浅拷贝的内容,发现有些地方理解的不够透彻,所以在网上搜集资料总结一下,主要分四个方面...
    LeverTsui阅读 8,888评论 3 5
  • 一、名词解释 1、 浅拷贝(shallow copy):只是增加了一个对被引用对象的一个指向,即指针拷贝,只是re...
    远方的枫叶阅读 2,910评论 0 1
  • 浅拷贝就是拷贝后,并没有进行真正的复制,拷贝后的对象和原对象都指向同一块内存地址 深拷贝是真正的复制了一份,复制的...
    最是光阴化浮末阅读 3,287评论 1 1
  • 浅拷贝:将对象的内存地址进行拷贝,不会生成一份新的内存地址。其生成对象与原有对象会公用同一份内存地址 但是它不会改...
    HeartPower阅读 1,337评论 0 1
  • 《呼唤》 作者:李德彦 妈妈,我与您的邂逅 是那一场血色缠绵 您把杜鹃的花语 疲惫成晚霞的吟唱 让我浅浅的呼吸 在...
    颜如玉心诉阅读 3,762评论 0 0

友情链接更多精彩内容