iOS开发之 字典和可变字典初解

一、字典

  1. 字典 : 字典是由键值对组成的数据集合,key是字符串对象,值可以是其他任意类型,在一个字典中,key必须是唯一的。此外,字典对象的键和值不可以为空,如果需要在一个对象中表示一个控制,可以使用NSNull对象  字典是通过key来取值的  
  2. 为什么要使用字典?为什么不适用数组?

      数组特征: 数组是按照一定顺序取排列的集合,通过下标取存取值(当希望数据是按照一定的顺序去排列的时候,选择使用数组)

    字典特征: 通过key存取值 (获取一个具体的标识 准确的得到砸门想要的值)


    3.字典的类名 NSDictionary

            (1).初始化一个空字典

            NSDictionary *dic = [[NSDictionary alloc]init ];

            NSDictionary *dic1 = [NSDictionary dictionary];

            (2)初始化的同时添加一对键值

            NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"value" forKey:@“key"]

            (3)  初始化的同时 添加多对键值     前面是值,可以是任意类型,后面是key,必须是字符串

             NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"Object",@"key",@"Object1",@"key1", nil];

            (4)字典的新写法   前面是key 后面是object(值)

     NSDictionary *dic4 = @{@“key":@"值",@"key1":@"值1"};

          (5)  字典取值

            NSDictionary *dic5 = @{@"key":@"值",@"key1":@"值1"};

          (a) objectForKey: 通过key取字典里的值

            NSString *string = [dic5 objectForKey:@"key"];

            NSLog(@“%@",string); 

          (b) 取字典值 字典名[@“key”];

            NSString *string1 = dic5 [@"key1"];

            NSLog(@“%@",string1);


    4.拓展

    //        allKeys 会取出字典里面所有的key放到一个数组里面

           NSArray *all = dic1.allKeys;

           for (NSString *key in dic1.allKeys) {

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

           }


二、可变字典

   1、    可变字典: 可以删除 添加(替换)

//        可变字典的类名 :NSMutableDictionary

//       不可以使用 这种方式 初始化 @{@“”:@“”,@“”:@“”}

        NSMutableDictionary *dic2 = [NSMutableDictionary dictionary];

//        通过key设置字典里面的值

        [dic2 setValue:@"失望" forKey:@"name"];

        [dic2 setValue:@"波~" forKey:@"name"];

//        通过key 移除key对应的key和值

       [dic2 removeObjectForKey:@"name"];

        NSLog(@“%@",dic2);



2、

例题(字典间的嵌套)

        {

//        "code": 200;

//        “data” :

//        {

//            “id”:”110119”;

//            "nick" : "小花";

//            "header" : @"www.baidu.headerImage.png";

//            “balance”:”100”;

//        }

    }



显示嵌套字典

        NSMutableDictionary *dic = [NSMutableDictionary dictionary];

        [dic setObject:@(200) forKey:@“code"];

        NSDictionary *datadic = @{@"id":@"110119",@"nick":@"小花",@"header":@"www.baidu.headerImage.png",@"balance":@"100"};

        [dic setObject:datadic forKey:@"data"];

        NSLog(@“%@“,dic);


修改嵌套中的数据

NSMutableDictionary *dic11 = [dic[@“data"]mutableCopy];

[dic11 setObject:@"www.taobao.headerImage.png" forKey:@"header"];

  NSLog(@"%@",dic11);



你可能感兴趣的:(软件开发类)