object-c 复制 (copy)
来源:互联网 发布:成都网络作家吸毒 编辑:程序博客网 时间:2024/05/17 00:16
深拷贝,和前拷贝,是一项非常重要的知识点。
浅拷贝:
NSString *aName=[[NSString alloc] initWithString:@"Tom"];
2012-12-07 23:06:37.708 DemoVideo[699:1b803] objArray:
2012-12-07 23:06:37.709 DemoVideo[699:1b803]=====================
2012-12-07 23:06:37.709 DemoVideo[699:1b803] name=Tom
2012-12-07 23:06:37.709 DemoVideo[699:1b803]email=Tom@yahoo.cn
2012-12-07 23:06:37.709 DemoVideo[699:1b803]=====================
2012-12-07 23:06:37.710 DemoVideo[699:1b803]=====================
2012-12-07 23:06:37.710 DemoVideo[699:1b803] name=LiLei
2012-12-07 23:06:37.710 DemoVideo[699:1b803]email=LiLei@yahoo.cn
2012-12-07 23:06:37.711 DemoVideo[699:1b803]=====================
2012-12-07 23:07:13.025 DemoVideo[699:1b803]=====================
2012-12-07 23:07:13.027 DemoVideo[699:1b803] name=Tom
2012-12-07 23:07:13.027 DemoVideo[699:1b803]email=Tom@yahoo.cn
2012-12-07 23:07:13.027 DemoVideo[699:1b803]=====================
2012-12-07 23:07:36.547 DemoVideo[699:1b803] objArray2:
2012-12-07 23:07:36.547 DemoVideo[699:1b803]=====================
2012-12-07 23:07:36.547 DemoVideo[699:1b803] name=Tom
2012-12-07 23:07:36.548 DemoVideo[699:1b803]email=Tom@yahoo.cn
2012-12-07 23:07:36.548 DemoVideo[699:1b803]=====================
2012-12-07 23:07:36.548 DemoVideo[699:1b803]=====================
2012-12-07 23:07:36.548 DemoVideo[699:1b803] name=LiLei
2012-12-07 23:07:36.549 DemoVideo[699:1b803]email=LiLei@yahoo.cn
2012-12-07 23:07:36.549 DemoVideo[699:1b803]=====================
2012-12-07 23:07:50.844 DemoVideo[699:1b803]=====================
2012-12-07 23:07:50.844 DemoVideo[699:1b803]name=CarBoon
2012-12-07 23:07:50.844 DemoVideo[699:1b803]email=CarBoon@yahoo.cn
2012-12-07 23:07:50.845 DemoVideo[699:1b803]=====================
2012-12-07 23:08:14.460 DemoVideo[699:1b803] objArray:
2012-12-07 23:08:14.460 DemoVideo[699:1b803]=====================
2012-12-07 23:08:14.461 DemoVideo[699:1b803]name=CarBoon
2012-12-07 23:08:14.461 DemoVideo[699:1b803]email=CarBoon@yahoo.cn
2012-12-07 23:08:14.461 DemoVideo[699:1b803]=====================
2012-12-07 23:08:14.461 DemoVideo[699:1b803]=====================
2012-12-07 23:08:14.461 DemoVideo[699:1b803] name=LiLei
2012-12-07 23:08:14.462 DemoVideo[699:1b803]email=LiLei@yahoo.cn
2012-12-07 23:08:14.462 DemoVideo[699:1b803]=====================
2012-12-07 23:08:44.689 DemoVideo[699:1b803] objArray2:
2012-12-07 23:08:45.493 DemoVideo[699:1b803]=====================
2012-12-07 23:08:45.493DemoVideo[699:1b803] name=CarBoon
2012-12-07 23:08:45.493DemoVideo[699:1b803] email=CarBoon@yahoo.cn
2012-12-07 23:08:45.493 DemoVideo[699:1b803]=====================
2012-12-07 23:08:46.021 DemoVideo[699:1b803]=====================
2012-12-07 23:08:46.021 DemoVideo[699:1b803] name=LiLei
2012-12-07 23:08:46.021 DemoVideo[699:1b803]email=LiLei@yahoo.cn
2012-12-07 23:08:46.021 DemoVideo[699:1b803]=====================
调用copy方法来拷贝不可变对象,或者调用mutableCopy方法拷贝可变对象时,
为新对象分配了内存空间,并且将对象数组中单个元素分别复制到新对象数组元素中。
对象默认为为浅复制,这种复制,仅仅是将引用从一个数组元素复制到另一个数组元素。
对,复制的是引用。所以,两个数组中的元素都指向内存中的同一个对象。
于是,这种情况就出现了,我们修改了原来数组中的对象,另一个数组中响应的元素也改变了。
深拷贝:内容拷贝,会产生新的对象。新对象计数器置为1,源对象计数器不变。
-(id)copyWithZone:(NSZone *)zone;
-(id)mutableCopyWithZone:(NSZone *)zone;
@interfaceAddressCard : NSObject<</span>NSCopying,NSMutableCopying>
#pragma mark- NSCopying
-(id)copyWithZone:(NSZone *)zone{
}
#pragma mark- NSMutableCopying
-(id)mutableCopyWithZone:(NSZone *)zone{
}
AddressCard *cloneCard=[card1copy];
2012-12-08 22:31:06.206 DemoVideo[464:1b803]=====================
2012-12-08 22:31:06.207 DemoVideo[464:1b803] name=Tom
2012-12-08 22:31:06.207 DemoVideo[464:1b803]email=Tom@yahoo.cn
2012-12-08 22:31:06.207 DemoVideo[464:1b803]=====================
2012-12-08 22:31:06.207 DemoVideo[464:1b803]=====================
2012-12-08 22:31:06.207 DemoVideo[464:1b803]name=changeValue
2012-12-08 22:31:06.207 DemoVideo[464:1b803]email=changeValue@yahoo.cn
2012-12-08 22:31:06.208 DemoVideo[464:1b803]=====================
2012-12-08 22:31:22.731DemoVideo[464:1b803] =====================
2012-12-08 22:31:22.731DemoVideo[464:1b803] name=Tom
2012-12-08 22:31:22.731DemoVideo[464:1b803] email=Tom@yahoo.cn
2012-12-08 22:31:22.731DemoVideo[464:1b803] =====================
- object-c 复制 (copy)
- Object-C对象复制:copy与mutableCopy、NScopying与NSMutableCopy
- 【Object-C】Copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- object-c的copy方法
- Object c assign/retain/copy
- Object C 复制对象
- C++类对象的复制-拷贝构造函数——The c + + class object replication - copy constructor
- IOS-10-详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy,mutableCopy
- Object C 2.0 浅复制
- object-c:property,assign,copy,retain,release
- object-c中的assign retain copy
- object-c 深复制和浅复制
- bochs+gdb联调linux-0.11内核
- linux驱动之ioctl
- 一段代码详解JavaScript面向对象
- Python 生成器 generator
- Vim 使用总结[不定时更新。。。]
- object-c 复制 (copy)
- Reverse Integer
- 每个程序员都必读的10篇文章
- Linux实现的IEEE 802.1Q VLAN
- 详解Java解析XML的四种方法
- Ignatius and the Princess III (HDU 1028) ——母函数(另解DP)
- js\jquery\ajax\json
- Map-Reduce原理
- 大公司?小公司?我的经历和建议