黑马程序员技术交流社区
标题:
NSDictionary初始化问题
[打印本页]
作者:
愿我能
时间:
2014-4-23 11:20
标题:
NSDictionary初始化问题
NSDictionary是不可变的那像这样 每次都为dict 附了新值
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"v1",@"k1",
@"v2",@"k2",
@"v3",@"k3",nil];
// NSLog(@"%@",dict);
//打印结果k1 = v1;
//k2 = v2;
//k3 = v3; 上一句初始化的 v与k 却没了,如果没 第二句之后的 打印结果就是 k=v,想问下dict后面的赋值是不是就相当于前面初始化的v与k消失在了内存里,将指针指向了新的位置,同理 后面dict还可以继续赋值
NSArray *objects = [NSArray arrayWithObjects:@"v1",@"v2",@"v3",@"v4", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1",@"k2",@"k3",@"k4", nil];
dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSLog(@"%@",dict);// 打印结果 k1 = v1;
k2 = v2;
k3 = v3;
k4 = v4;
复制代码
这样dict的内容有了三次变化,前两次的值是不是就废了
作者:
程浩
时间:
2014-4-23 15:30
NSDictionary就是
不可变
字典,你初始化之后 ,再次初始化,会出问题的
作者:
gmadong@163.com
时间:
2014-4-23 20:58
本帖最后由 gmadong@163.com 于 2014-4-24 21:16 编辑
第一次
dict
指向的是堆中的 [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
第二次
dict
指向的是堆中的 [NSDictionary dictionaryWithObjectsAndKeys:
@"v1",@"k1",
@"v2",@"k2",
@"v3",@"k3",nil];
NSArray *objects = [NSArray arrayWithObjects:@"v1",@"v2",@"v3",@"v4", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1",@"k2",@"k3",@"k4", nil];
第三次
dict指向的是堆中的
[NSDictionary dictionaryWithObjects:objects forKeys:keys];
每次都赋值只是改变了dict的指向
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2