//初始化时先值后键
NSDictionary* map=[NSDictionary dictionaryWithObjects:@[
@"a",
@"b",
@"c"
] forKeys:@[
[NSNumber numberWithInt:2],
[NSNumber numberWithInt:4],
[NSNumber numberWithInt:6],
]];
int c= [map count];
NSLog(@"%d",c);
for (NSObject*o in [map allKeys]) {
//两种访问方式
NSLog(@"%@ -- %@ []访问 %@",o , [map objectForKey:o] , map[o]);
}
NSLog(@"\n全部值");
for (NSObject*o in [map allValues]) {
NSLog(@"%@",o);
}
/*
任意对象作为键
NSDictionary的键应该
1.正确重写isEqual 和 hash 方法,
2.实现copyWithZone:方法,最好返回不可变的副本
为了保证键不被其他代码修改,NSDictionary总是先调用该key的copy方法来得到副本,然后使用该副本作为键
*/
打印如下
2015-10-07 11:49:33.763 testt[856:22359] 3
2015-10-07 11:49:33.764 testt[856:22359] 6 -- c []访问 c
2015-10-07 11:49:33.764 testt[856:22359] 4 -- b []访问 b
2015-10-07 11:49:33.765 testt[856:22359] 2 -- a []访问 a
2015-10-07 11:49:33.765 testt[856:22359]
全部值
2015-10-07 11:49:33.765 testt[856:22359] c
2015-10-07 11:49:33.765 testt[856:22359] b
2015-10-07 11:49:33.765 testt[856:22359] a