示例解释深拷贝和浅拷贝IOS
来源:互联网 发布:java磁力解析源码 编辑:程序博客网 时间:2024/05/16 07:21
--------------转载请注明源地址:http://blog.csdn.net/u013082522/article/details/19932977
最近了解到了一些深拷贝和浅拷贝的区别.
整理如下:
比如我们创建了一个Person类,有name(NSString类型)以及age(int类型)两个属性.
好了.现在我们先实例化一个Person对象.并给他一个初始值/
Person *p1 =[ [Person alloc]init];
[p1 setName:@"XuKunHenWuLiao"];
[p1 setAge:18];
需求出现了.我们需要对p1进行(copy)操作.
浅拷贝:p2 = [p1 copy];p2的age是新生成的18,但是name却是指向与p1.name相同的内存区.
深拷贝:p2 = [p1 copy];p2的age和name都与p1的name指向的内存地址不同;
总结来说:
浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.
深拷贝(深度克隆):不仅复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
遵循NSCoping协议的类才可以使用深拷贝.
如果一个我们自定义的类,也就是复杂的类,若想使用深拷贝,我们就需要让我们的类,实现NSCoping协议,而且需要重写协议中的方法.
@protocol NSCopying
- (id)copyWithZone:(NSZone *)zone;
@end
@protocol NSMutableCopying
- (id)mutableCopyWithZone:(NSZone *)zone;
@end
- 示例解释深拷贝和浅拷贝IOS
- iOS:关于浅拷贝和深拷贝
- 【IOS】浅拷贝和深拷贝
- iOS深拷贝和浅拷贝
- iOS 深拷贝和浅拷贝
- ios 深拷贝和浅拷贝
- ios-深拷贝和浅拷贝
- iOS 深拷贝和浅拷贝
- iOS深拷贝和浅拷贝解析
- iOS伪拷贝, 浅拷贝, 深拷贝
- [ios]深拷贝,浅拷贝
- iOS深拷贝浅拷贝
- Java 浅拷贝和深拷贝的代码示例
- 深拷贝浅拷贝的解释
- 深拷贝 浅拷贝---------------------- 神级解释
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- Kruskal
- Prime
- 【cocos2d-x入门实战】微信飞机大战之十五:跨平台移植和广告植入
- 命令行查看占用端口的程序
- SharePoint 2010 master page 控件介绍(1)
- 示例解释深拷贝和浅拷贝IOS
- service--剪切板
- Spring框架启动Tomcat报错
- apt-get软件包管理
- 纸上谈兵(C++):字符串的使用
- cvAdd()和 cvAddS()函数的使用
- 简单工厂模式
- 1137. 河床 变笨了
- Linux C一站式学习习题答案7.2.2分数加减乘除