zoukankan      html  css  js  c++  java
  • iosOC不可变字典和可变字典

    //key 和 value 都属于(id)对象类型

        //key常用字符串NSString来表示

        //存储数值型 一般可用 NSString

        //int  age ->@(age)

         //  [dic[name] intValue];

         //   @()-->转成NSNumber 类型

         //     intValue

        //value可以使任意对象(NSString  NSArrray , dog  )

        //NSDictionary 一旦创建不能修改增加删除

    #pragma mark 字典的创建

            

       NSDictionary * dic = [[NSDictionary alloc]initWithObjectsAndKeys:

          @"value1",@"key1",

          @"value2",@"key2",

          @"value2",@"key3",nil];

            NSLog(@"%@",dic);

        NSDictionary * dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1", nil];

        //用字典创建字典

        NSDictionary * dic2 = [[NSDictionary alloc]initWithDictionary:dic];

            NSLog(@"%@",dic2);

        //xcode4.6

        //格式: key : value 多个元素之间用,分隔

        //用NSLog打印字典是不支持汉字的转码

        // U5bd2U4ed2;

        NSDictionary * dic3 =

            @{@"key1":@"value1",

              @"key2":@"value2",

              @"key3":@"value3",

              @"key4":@"value2"

              };

    #pragma mark 查看键的个数

        NSUInteger  num = [dic2 count];

            NSLog(@"%lu",num);

    #pragma mark 通过key找value

      NSString * str =  [dic3 objectForKey:@"key1"];

        //xcode4.6

       NSString * str2 = dic3[@"key2"];

            NSLog(@"%@",str);

            NSLog(@"%@",str2);

    #pragma mark  获取所有key 所有value

        NSArray * keyArray  =  [dic3 allKeys];

        NSArray * valueArray = [dic3 allValues];

            NSLog(@"keys = %@",keyArray);

            NSLog(@"values = %@",valueArray);

    #pragma mark 查看一个value对应多个key

         NSArray * array =  [dic3  allKeysForObject:@"value2"];

            NSLog(@"%@",array);

    #pragma mark 可变字典

    #pragma mark 创建可变字典

    NSMutableDictionary * mutDic = [[NSMutableDictionary alloc] init];

    NSDictionary * dic4 =

            @{@"key1":@"value1",

              @"key2":@"value2",

              @"key3":@"value3",

              @"key4":@"value2"

              };

            

    NSMutableDictionary * mutDic2 = [[NSMutableDictionary alloc]initWithDictionary:dic4];

            

    #pragma mark 增加

            //key不重复是增加键值对

            [mutDic2 setObject:@"value3"

                        forKey:@"key5"];

            //保证Key不重复 key必须唯一

            //通过查询key的obj 是否为 ==NULL

    //        if ([mutDic2 objectForKey:@"key5"]== NULL) {

    //            

    //        }

            NSDictionary * dic5 = @{@"key_1":@"value1",

                  @"key_2":@"value2"};

        [mutDic2 addEntriesFromDictionary:dic5];

            NSLog(@"%@",mutDic2);

    #pragma mark 删除

            //通过key删除值

        [mutDic2 removeObjectForKey:@"key_1"];

            NSLog(@"%@",mutDic2);

        

        NSArray * array2 = @[@"key_2",@"key2",@"key4"];

        [mutDic2 removeObjectsForKeys:array2];

            NSLog(@"%@",mutDic2);

            

    //        [mutDic2 removeAllObjects];

    //        NSLog(@"%@",mutDic2);

            

    #pragma mark 修改

            //key 已存在是修改当前value的值

            [mutDic2 setObject:@"hhhh" forKey:@"key1"];

            NSLog(@"%@",mutDic2);

            //完全覆盖掉当前字典中所有的值

            [mutDic2 setDictionary:dic2];

            NSLog(@"%@",mutDic2);

            

        }

  • 相关阅读:
    pandas的简单使用
    java搭建web从0-1(第一步:创建web工程)
    android通过命令行安装sdk
    iOS8不能通过itms-services协议下载安装app
    date命令转换日期命令提示date: illegal time format
    mac通过命令行获取证书和配置文件过期时间
    jenkin 不必要的Execute shell执行失败,导致jenkins都失败的解决
    命令行执行jenkins,构建job(可传递参数)
    Eclipse启动分析。。
    java非web应用修改 properties/xml配置文件后,无需重启应用即可生效---自动加载
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/5900876.html
Copyright © 2011-2022 走看看