美文网首页
OC使用copy和mutableCopy的区别

OC使用copy和mutableCopy的区别

作者: coming_168 | 来源:发表于2019-08-20 21:34 被阅读0次

    浅拷贝:

    本质就是指针拷贝 -> 不会开辟新的内存空间
    浅拷贝就是拷贝指向原来对象的指针,使原对象的引用计数+1,可以理解为创建了一个指向原对象的新指针而已,并没有创建一个全新的对象。

    深拷贝:

    本质是对象拷贝(内容拷贝) -> 会开辟一个新的内存空间
    深拷贝就是拷贝出和原来仅仅是值一样,但是内存地址完全不一样的新的对象,创建后和原对象没有任何关系。

    本质区别在于:

    1⃣️是否开启新的内存地址
    2⃣️是否影响内存地址的引用计数

    浅拷贝和深拷贝区分准则:

    1⃣️可变对象的copy和mutableCopy方法都是深拷贝
    2⃣️不可变对象的copy方法是浅拷贝,mutableCopy方法是深拷贝
    3⃣️copy方法返回的对象都是不可变对象


    image.png

    相关文章

      网友评论

          本文标题:OC使用copy和mutableCopy的区别

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