OC教程07-字典NSDictionary详解

来源:互联网 发布:linux如何调用内核 编辑:程序博客网 时间:2024/06/02 19:43

 字典是我们常见的数据类型,在Java中对应的是HashMap

         *  字典:又称键值对,通过一个key可以访问他的值         *  分类:NSDictionary不可变字典,NSMutableDictionary可变字典         *  备注:字典的key一般是 字符串,如  @"key"         *  备注:字典的值,必须是对象,不能是C语言的基本类型         *  备注:字典中的值也可以是字典,可以多级嵌套         *  备注:字典元素的访问,可以直接通过下标的形式访问         *  注意:字典中的键值对是无序的

//1.不可变字典的创建

      NSDictionary *dic = @{@"key1":@"value1",@"key2":@"value2"};        NSDictionary *dic2 = @{@"key1":@"value3",@"key2":@"value4"};

 /**

         *  2.获取字典中元素的几种方法

         */

       id obj = dic[@"key1"];//拿到key1对应的值NSString *str1 = dic[@"key1"];//或者你知道他的值是NSString类型   NSString *str2 = [dic objectForKey:@"key1"];//通过方法获取key1值

        /**

         *  3.字典中包含字典

         */

 

        NSDictionary *dic3 = @{@"dic1":dic,@"dic2":dic2};        NSString *str3 = dic3[@"dic1"][@"key1"];//多级字典的获取值得方法

    /**

         *  4.从数组中拿出字典

         *  从网络获取的数据很可能是数组,数组中存的可能是字典

         */

 NSArray *arr = @[dic,dic2];//模拟网络数据,可能有很多个       for (NSDictionary *dd in arr)//使用快速枚举解析数组        {            NSLog(@"获取的字典是:%@",dd);            NSString *str = dd[@"key1"];            NSLog(@"从字典中拿出的字符串是%@",str);        }

        /**

         *  5.字典所有的keyvalue的获得

         *  所有的keysvalues构成的是一个数组

         */    

 NSArray *allKeys = [dic allKeys];//获得字典的所有的键        NSArray *allValues = [dic allValues];//获得字典中所有的值

  /**

         *  6.可变字典的用法

         *  NSMutableDictionary主要用于参数拼接

         */

   

NSMutableDictionary *dic4 = [NSMutableDictionary dictionaryWithCapacity:5];//字典的初始容量为5(不够时会自动给增大)        [dic4 setObject:@"杨斌" forKey:@"name"];//向字典中添加键值对        [dic4 setObject:@"男" forKey:@"sex"];        [dic4 setObject:@"1770" forKey:@"phone"];        NSLog(@"字典的内容是  %@",dic4); [dic4 removeObjectForKey:@"name"];//移除  @"name"对应的值@"杨斌"  [dic4 removeAllObjects];//移除所有元素

     更多OC文章:http://blog.csdn.net/yangbingbinga   

        

        

0 0