OC中字典的遍历

OC中字典的遍历有四种:

1、使用forin进行遍历

        for (NSString *key in dic) {
            NSLog(@"%@",key);
            //[dic objectForKey:key];
            NSLog(@"%@",dic[key]);
        }

  

2、使用for循环进行遍历

 
        //把字典中的键放到一个数组中,name age score
       NSArray *keyArr= [dic allKeys];
        //遍历这个数组
        for (int i=0; i<keyArr.count; i++) {
            NSLog(@"%@",[dic objectForKey:keyArr[i]]);
        }

  

3、使用枚举进行遍历

        //用枚举类进行字典遍历
        NSEnumerator *en=[dic keyEnumerator];
        
        //如果知道key的类型就用该类型去声明一个指针变量,如果不知道key是什么类型就用id来声明指针变量
        NSString *key;
        
        //key=[en nextObject]是把en中的值逐一赋给key,如果全部赋完后,那么key指向就为空,while循环条件不成立,循环体语句不再执行
        while (key=[en nextObject]) {
            NSLog(@"%@",key);
        }
        //[dic objectEnumerator]把字典中的值取出来
        en=[dic objectEnumerator];
        id value;
        //[en nextObject]把en中的值逐一赋给value,如果全部赋完后,那么value指向就为空,while循环条件不成立,循环体语句不再执行
        while (value=[en nextObject]) {
            NSLog(@"%@",value);
        }
        

  

4、使用块对字典的键值进行遍历

[dic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            NSLog(@"%@ %@",key,obj);
        }];

  

posted @ 2017-02-07 14:20  zhaozishuang  阅读(4505)  评论(0编辑  收藏  举报