NSMutableDictionary的基本使用

来源:互联网 发布:烟台淘宝托管 编辑:程序博客网 时间:2024/05/03 23:16

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

        //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);

        }

0 0
原创粉丝点击