黑马程序员技术交流社区
标题:
创建一个NSDictionary对象,随便往里面添加内容,然后通过...
[打印本页]
作者:
364827317
时间:
2015-12-1 11:53
标题:
创建一个NSDictionary对象,随便往里面添加内容,然后通过...
创建一个NSDictionary对象,随便往里面添加内容,然后通过代码产生可变和不可变副本,这些复制是深复制还是浅复制?
作者:
ZXY66452
时间:
2015-12-1 18:02
NSDictionary *dic = [dictionary copy];//地址不变,retaincount+1
NSMutableDictionary* cpdic1 = [dic mutableCopy];//地址改变,但是数组中成员指针不变,浅拷贝
NSMutableDictionary *cpdic2 = [[NSMutableDictionary alloc]initWithDictionary:cpdic1 copyItems:YES];//调用后,会对原NSDictionary中的每个元素调用其copy函数,并把返回的id加入到新的数组中。所以这是依赖于Obj对象类实现的深拷贝,如果- (id)copywithZone:(NSZone*)zone是重新分配一块内存赋值后返回,那么就是真正的深拷贝。如果直接返回自身,那么它只是浅拷贝。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2