美文网首页iOS开发
OC中copy的使用

OC中copy的使用

作者: 博BlingBing | 来源:发表于2015-08-12 12:23 被阅读1177次

    OC中copy的作用是:利用一个源对象产生一个副本对象

    特点:1、修改源对象的属性和行为,不会影响副本对象;

             2、修改副本对象的属性和行为,不会影响源对象

    深复制和浅复制的区别:

    深复制(深拷贝、内容拷贝、deep copy):

    特点:1、源对象和副本对象是不同的两个对象;

             2、源对象引用计数器不变,副本对象计数器为1(因为是新产生的)。

    本质:产生了新对象。

    浅复制(浅拷贝、指针拷贝、shallow copy):

    特点:1、源对象和副本对象是同一对象;

             2、源对象(副本对象)引用计数器+1,相当于做一次retain操作。

    本质:没有产生新对象。

    @property内存管理策略的选择

    1.非ARC

    1> copy : 只用于NSString\block;

    2> retain : 除NSString\block以外的OC对象;

    3> assign : 基本数据类型、枚举、结构体(非OC对象),当2个对象相互引用,一端用retain,一端                    用assign。

    2.ARC

    1> copy : 只用于NSString\block;

    2> strong : 除NSString\block以外的OC对象;

    3> weak : 当2个对象相互引用,一端用strong,一端用weak;

    4> assgin : 基本数据类型、枚举、结构体(非OC对象)。

    相关文章

      网友评论

        本文标题:OC中copy的使用

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