NSMutableDictionary的基本使用

//不可变字典&初始化字典

        //NSDictionary *dic = [NSDictionary dictionaryWithObjects:@[@"lijun",@"22",@"man"] forKeys:@[@"name:",@"age:",@"sex:"]];//这种方式无法取出某一个keyvalue

        NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"lijun",@"name",@"22",@"age",@"man",@"sex",nil];

        

        //遍历字典

        for (NSString *key in dic) {

            NSString *value = dic[key];

            NSLog(@"key=%@  value=%@",key,value);

        }

        

        //遍历字典

        [dic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {

            NSLog(@"%@ %@",key,obj);

        }];

        

        //dic赋值给dic1

        NSDictionary *dic1 = [NSDictionary dictionaryWithDictionary:dic];

        NSLog(@"%@ %lu",dic1,[dic1 count]);

        

        //获取字典中所有的keyvalue

        NSArray *str = [dic allKeys];

        NSLog(@"%@",str);

        NSLog(@"%@",[dic1 allValues]);

        //获取 name value

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

        

        

        

        //可变字典&可变字典的增删

        //通过类方法直接赋值

        NSMutableDictionary *dicM = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lijun",@"name",@"18000238987",@"phone",nil];

        //也可以通过实例方法开辟空间并赋值

        NSMutableDictionary *dicM1 = [[NSMutableDictionary alloc]

                        initWithObjectsAndKeys:@"alin",@"name",@"18000238833",@"phone",

                                      @"5110424248",@"code",@"cd",@"adress",nil];

        //[dicM setObject:dicM1 forKey:dic];

        [dicM1 setValue:@"girl" forKey:@"sex"];//添加一对键值

        

        NSLog(@"%@",dicM);

        NSLog(@"%@",dicM1);

        

        //创建一个可变空字典

        NSMutableDictionary *dicM2 = [NSMutableDictionary dictionary];

        [dicM2 setDictionary:dicM];//dicM1赋给dicM2

        [dicM2 setDictionary:dicM1];//在这里又进行一次赋值,会覆盖之前的内容

        NSLog(@"%@",dicM2);

        

        //通过key删除值

        [dicM2 removeObjectForKey:@"phone"];//删除了电话号码

        NSLog(@"%@",dicM2);

        //删除多个键值

        //NSArray *a = [NSArray arrayWithObjects:@"name",@"sex",nil];

        NSArray *a = @[@"name",@"sex"];

        [dicM2 removeObjectsForKeys:a];

        NSLog(@"%@",dicM2);

        

        //删除所有键值

        [dicM2 removeAllObjects];

        NSLog(@"%@",dicM2);

        

        //一般方法遍历字典

        for (int index=0;index<[dicM2 count]; index++) {

            NSString *object=[dicM2 objectForKey:[[dicM2 allKeys]objectAtIndex:index]];

            NSLog(@"object:%@",object);

        }

        

        //快速枚举

        NSLog(@"快速枚举");

        for (NSString *key in dicM2) {

        NSString *object=[dicM2 objectForKey:key];

         NSLog(@"object:%@",object);

         }

        NSLog(@"使用枚举类型");

        //使用枚举类型

        NSEnumerator *enumerator=[dicM2 keyEnumerator];

        id key;

        while(key=[enumerator nextObject]){

        id object=[dicM2 objectForKey:key];

        NSLog(@"object:%@",object);

        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值