OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)

原创
2016/09/07 15:30
阅读数 960

一:字典的基本概念

Foundation中的字典(NSDictionary和NSMutableDictionary)是由键(key)和值(value)组成的数值集合,就像我们查字典一样,通过键(key)来查找到值(value)。

key值通常是字符串对象,也可以是任意其他类型的对象,在一个字典对象中,key值必须是唯一的。

此外字典的键和值不能为空(nil),如果想在字典中加入一个空值,可以引入NSNull对象。

注意:①字典的对象储存是没有顺序的。                                                                                                        

           ②NSMutableDictionary是NSDictionary的子类,能使用其所有方法。                                             

           ③NSMutableDictionary是NSDictionary的可修改版                                                                          

          ④ 字典的值(value)可以是任何类型的对象                                                                                        

 //例如:字典的值(value)可以是数组

        NSArray *arr=@[@"1",@"2"];

        NSDictionary*dict=@{

                            @"name"   :@"Peter",

                            @"age"      :@"18",

                            @"subject" :arr                            };

二:不可变字典(NSDictionary

①字典的初始化

      //---简便方式

        NSDictionary *dict=@{

                             @"name":@"Peter",

                             @"age":@"18"

                             };

    //---dictionaryWithObjectsAndKeys

        NSDictionary*dict=[NSDictionary

        dictionaryWithObjectsAndKeys:@"Peter",@"name",@"18",@"age", nil]; 

   //---dictionaryWithObjects--forKeys

        NSDictionary *dict=[NSDictionary dictionaryWithObjects:@[@"Peter",@"18"] forKeys:@[@"name",@"age"] ];

②字典的常用方法

  • 输出字典key值对应的value值

  //---objectForKey

        NSLog(@"name--%@",[dict objectForKey:@"name"]);

 //[objectForKey:@"name"]等价于dict[@"name"]

        NSLog(@"name--%@",dict[@"name"]);

  • 字典的遍历

//获取所有的key

        [dict allKeys];

  //遍历

        for (NSString*key in dict.allKeys) {

            NSLog(@"%@:%@",key,dict[key]);

        }

 

三:可变字典(NSMutableDictionary

①初始化:不可变字典的初始化方法可变字典都可以使用

 //创建空字典

        NSMutableDictionary*dict=[NSMutableDictionary dictionary];

②不可变字典转换成可变字典

 //---mutableCopy

        NSMutableDictionary*dict1=[dict mutableCopy];

 //---NSMutableDictionary dictionaryWithDictionary

        NSMutableDictionary*dict2=[NSMutableDictionary dictionaryWithDictionary:dict];

③增加,删除,修改字典的对象

 //增加对象

        [dict setObject:@"Peter" forKey:@"name"];

        //等价于

        dict[@"name"]=@"Peter";

//name存在则修改它的值,不存在就添加一个新的对象

 

//删除对象

        [dict removeObjectForKey:@"name"];

        //全删

        [dict removeAllObjects];

 

//修改对象

[dict setObject:@"Peter" forKey:@"name"];

        //等价于

        dict[@"name"]=@"Peter";

 

 

 

 

 

 

展开阅读全文
打赏
1
0 收藏
分享
加载中
JoshSone博主

引用来自“CrazyPeter”的评论

上心,给赞0
😄 
2016/09/20 11:32
回复
举报
上心,给赞0
2016/09/14 15:30
回复
举报
更多评论
打赏
2 评论
0 收藏
1
分享
返回顶部
顶部