美文网首页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的使用

    OC中copy的作用是:利用一个源对象产生一个副本对象 特点:1、修改源对象的属性和行为,不会影响副本对象; ...

  • OC中copy的使用

    转载自https://my.oschina.net/aofe/blog/266677 摘要: 在Objective...

  • copy属性

    一、为什么NSArray、NSDictionary、NSString声明的时候要使用copy修饰? 在OC中,父类...

  • Lesson 0-1 Objective-C basic

    6.OC 手动内存管理 OC 内存管理原则: 只要使用 alloc, new, copy, mutableCopy...

  • OC中的copy

    什么是copy? copy从字面意思来看就是“复制”、“拷贝”,是一个产生副本的过程。而在OC中,copy是用来复...

  • OC中的copy

    前言 不敢说覆盖OC中所有copy的知识点,但最起码是目前最全的最新的一篇关于 copy的技术文档了。后续发现有新...

  • OC中的copy

    1.所有被copy修饰的对象都会进行深copy吗? 答案:NO,例如block 全局block被copy修饰不会有...

  • Swift中如何深拷贝Array中的对象

    我们在开发中会经常使用到数组,在OC中数组可以copy或者mutableCopy,但是在Swift中数组就不能直接...

  • iOS开发 - Runtime获取类的成员变量、属性、方法、协议

    注意: 在OC中,使用了Copy、Create、New类型的函数,需要释放指针(ARC是管不了C函数) 1.获取成...

  • OC中的copy/mutableCopy

    这周由于公司招新人,面试官的一道关于copy和mutalbeCopy的问题引发了组员之间的激烈探讨,这时有位号称s...

网友评论

    本文标题:OC中copy的使用

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