首页 > 代码库 > 黑马程序员------oc中的copy

黑马程序员------oc中的copy

oc中的copy分为深copy和浅copy

深copy的意思是copy后又重新开辟一个内存空间,对copy的资源进行操作,不会影响本来的那份资源。表格中显示哪些为深copy

copy前的可变性可变不可变
进行copy不可变不可变
进行mutablecopy可变可变

 

 

以上四中情况下,除了开始是不可变,进行copy后,还是不可变的,这种情况下是浅copy外,其他的三种情况都是深copy。

进行copy操作的,除了系统的NSArray/NSMuabltArray、NSDictionary/NSMuableArray,对其他自定义的类,也可以进行copy操作

自定义的类进行copy操作的时候,需要以下的步骤

1.定义类时,遵守<NSCopying>协议

2.实现(copyWithZone:...)的方法

3.如果是MRC情况下,需要在重写系统的一些方法,如-release,-retain,-autorelease,- retainCount。如果ARC情况下,是不用写这些方法的

黑马程序员------oc中的copy