美文网首页
深拷贝,浅拷贝

深拷贝,浅拷贝

作者: HLoveff | 来源:发表于2021-02-19 10:46 被阅读0次

    1.浅拷贝就是拷贝后,并没有进行真正的复制,而是复制的对象和原对象都指向同一个地址
    2.深拷贝是真正的复制了一份,复制的对象指向了新的地址

    一:
    对于非容器不可变对象的copy为浅拷贝,mutableCopy为深拷贝
    浅拷贝获得的对象地址和原对象地址一致, 返回的对象为不可变对象
    深拷贝返回新的内存地址,返回对象为可变对象
    二:
    对于非容器可变对象的copy为深拷贝
    mutableCopy为深拷贝
    并且copy和mutableCopy返回对象都为可变对象
    三:
    容器类可变对象mutableCopy和copy都返回一个新的容器,但容器内的元素仍然是浅拷贝
    想要整个容器都深拷贝就要用到使用 initWithArray:copyItems:方法,将第二个参数设置为 YES

    总结:
    copy: 对于可变对象为深拷贝,对于不可变对象为浅拷贝
    mutableCopy:始终是深拷贝

    相关文章

      网友评论

          本文标题:深拷贝,浅拷贝

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