oc中字典的处理

//1简单初始化

        NSDictionary *dict=@{@"name":@"小明",@"qge":@"18"};

        NSLog(@"%@",dict);

 

//2 initWithDictionary 用一个字典初始化另一个字典

        NSDictionary *dict1=[[NSDictionary alloc]initWithDictionary:dict];

        NSLog(@"%@",dict1);

 

//3 initWithObjectsAndKeys:  vale,key,...

        NSDictionary *dict2=[[NSDictionary alloc]

        initWithObjectsAndKeys:@"小明",@"name",@"18",@"age", nil];

        NSLog(@"%@",dict2);

        

//4 initWithObjects  forKeys   以数组形式传入 value,key

        NSDictionary *dict3=[[NSDictionary alloc]initWithObjects:@[@"xiaoming",@"18"] forKeys:@[@"name",@"age"] ];

 

//5  初始化一个字典

       // NSDictionary *dict4=[NSDictionary dictionary];

        //dictionaryWithObjectsAndKeys:  定义一个key-value

        NSDictionary *dict5=[NSDictionary dictionaryWithObjectsAndKeys:@"xiaoming",@"name", nil];

          NSLog(@"%@",dict5);

        

 

//1 求字典元素个数

        NSDictionary *dict=@{@"name":@"xiaoming",@"age":@"18",@"nikename":@"xiaoxiaoming"};

        NSLog(@"%lu",dict.count);

        

//2 根据key求value

        NSLog(@"%@",[dict objectForKey:@"age"]);

        

//3  得到所有的key 返回数组

        NSArray *arr=[dict allKeys];

        NSLog(@"%@",arr);

        //遍历字典元素value

        for (int i=0; i<arr.count; i++) {

            NSLog(@"%@",[dict objectForKey:[arr objectAtIndex:i]]);

        }

        

//4 得到所有的value  返回数组

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

                

//5 字典判等  判断内容

        NSDictionary *dict1=@{@"name":@"xiaoming"};

        NSLog(@"%d",[dict isEqualToDictionary:dict1]);

//6  字典排序 key

        NSDictionary *dict2=@{@"1":@"b",@"2":@"a",@"3":@"c",@"4":@"d"};

        //由于字典中value都是字符串,所以可以用compare:方法

        NSLog(@"%@",[dict2 keysSortedByValueUsingSelector:@selector(compare:)]);

           

//7 字典遍历  枚举器类   keyEnumerator 遍历key  ,

objectEnumerator  遍历 value

        //定义了一个枚举器对象,且使用字典类keyEnumerator初始化

        //枚举器中,存放的是字典的key

        NSEnumerator *enumerator=[dict2 keyEnumerator];

        //枚举器对象最初指向空,需要调用nextObject来指向下一个对象,直至最终所有对象都已遍历完毕nextObject指向空

        NSString *temKey=nil;

        while((temKey=enumerator.nextObject))

        {

            NSLog(@"%@",temKey);

        }

        

        

//8  数组的遍历  枚举器   objectEnumerator

reverseObjectEnumerator 逆序遍历

        NSArray *arr2=@[@"sdf",@"gg",@"wer",@"bb"];

        NSEnumerator *enum2=[arr2 reverseObjectEnumerator];

        NSString *temElment=nil;

        while ((temElment=enum2.nextObject))

        {

            NSLog(@"%@",temElment);

        }

//可变字典 初始化

        NSMutableDictionary *mutDict=[NSMutableDictionary dictionaryWithDictionary:@{@"name":@"xiaoming"}];

        NSLog(@"%@",mutDict);

        

//1 删除字典

        [mutDict  removeObjectForKey:@"name"];

        NSLog(@"%@",mutDict);

        

//2 添加字典元素

        [mutDict setObject:@"18" forKey:@"age"];

        NSLog(@"%@",mutDict);

//可以覆盖之前的值

        [mutDict setObject:@"20" forKey:@"age"];

        NSLog(@"%@",mutDict);

        

//3 删除所有元素

        //removeAllObjects

        

//4  用一个新字典覆盖掉当前内容

        [mutDict setDictionary:@{@"nikename":@"xiaoxiaoming"}];

        NSLog(@"%@",mutDict);

 

 

 

 

posted @ 2016-01-15 09:57  codingsunny  阅读(215)  评论(0编辑  收藏  举报