[好程序员训练营]Objective-C学习笔记---基本数据结构NSDictionary

时间:2021-04-17 00:19:11

 

    <A href="http://www.goodprogramme r.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流!

  前言:NSDictionary是OC中的字典类型,定义一个字典对象,那么这个字典对象里的数据时以键值对的形式存储的。相比于NSArray和NSString类型,他们三个都能够创建不可变对象和可变对象,并且创建方法也大致相同,但是NSDictionary类型更方便于查找元素,下面来看看NSDictionary如何创建不可变字典和可变字典

 

一、NSDictionary创建不可变字典

 1    ///////////创建一个不可变字典///////////
 2     NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"xiaoming",@"1",@"xi    aohong",@"2",@"xiaogang",@"3", nil];  3     NSLog(@"%@",dict);  //注意这儿打印输出的顺序和你往字典里添加键值对的顺序并不一致

4 ///////////用枚举器法遍历字典//////////////// 5 NSEnumerator * enumerator = [dict keyEnumerator]; //将键装进枚举器 6 id key; 7 while(key=[enumerator nextObject]){ 8 NSLog(@"%@",key); //打印键 9 NSLog(@"%@",[dict objectForKey:key]); //通过键找到值 10 } 11 12 NSEnumerator * enumerator1 = [dict objectEnumerator];//将值装进枚举器 13 id obj; 14 while(obj=[enumerator1 nextObject]){ 15 NSLog(@"%@",obj); //直接打印值 16 } 17 18 /////////////////快速枚举法//////////////// 19 for(id key in dict){ 20 NSLog(@"%@",key); //打印键 21 NSLog(@"%@",[dict objectForKey:key]); //通过键找到值 22 }

创建一个不可变字典过后,里面的键值对就固定了,不能再修改添加,只可进行查看

二、NSMutableDictionary创建可变字典

1  ///////////////创建一个可变字典/////////////////
2     NSMutableDictionary *mdict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"xiaomi ng",@"1", nil]; 3     
4     [mdict setValue:@"xiaohong" forKey:@"2"]; //添加键值对
5     NSLog(@"%@",mdict); 6 
7     [mdict removeObjectForKey:@"2"];          //删除键值对
8     NSLog(@"%@",mdict);

此外,可变字典也可以用不可变字典里那些查看字典的方法