Objective-C的 深copy和浅copy的示例
深copy和浅copy的示例
下面进行看代码
第一个示例:浅copy
先声明两个类
Car和Engine类
1 | // |
1 | // |
1 | // |
1 | // |
运行得到的结果是:
1 | // |
第二个示例:深copy
有两种方法:
第一种方法:
修改属性,将
1 | @property (nonatomic, retain) Engine *engine; |
修改为:
1 | @property (nonatomic, copy) Engine *engine; |
第二种方法:
修改copy的操作,将:
1 | -(id) copyWithZone:(NSZone *)zone |
改为:
1 | -(id) copyWithZone:(NSZone *)zone |
结果都是一样的,嘿嘿
1 | 2013-11-20 11:21:34.432 CarDemo[93002:303] car = 0x100200b40 |