zoukankan      html  css  js  c++  java
  • iOS_SN_深浅拷贝( 百度的)_转载

    文章原地址:http://www.cnblogs.com/5ishare/p/4362459.html

    深浅拷贝前提是:是实现NSCopying或者NSMutableCopying协议。

    浅拷贝只是复制对象本身,对象的属性和包含的对象不做复制。

    深拷贝则对对象本身复制,同是对对象的属性也进行复制。

    深浅拷贝的本质区别是对象或者对象属性的内存地址是否一样,一样则为浅拷贝,不一样则为深拷贝。

    Foundation框架支持复制的类,默认是浅拷贝。其中对Foundation中不可变的对象进行copy时作用相当于retain。

    而如果是mutablecopy时,无论对象是否可变,副本是可变的,并且实现了真正意义上的copy。如果对可变对象进行copy,

    副本对象是不可变的,同样是真正意义上的copy。

    retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。

    copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,

             引用计数每次加一。始终返回一个不可变对象。

     mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。

  • 相关阅读:
    JS清除IE浏览器缓存的方法
    大数据基础2
    CI/CD
    手机连接fiddler
    npm run build 报错
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2
    读取ini文件的方法
    ES小知识
    svn连接pycharm
    创建python文件时添加相关信息
  • 原文地址:https://www.cnblogs.com/zhang-kiwi/p/5224971.html
Copyright © 2011-2022 走看看