zoukankan      html  css  js  c++  java
  • 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);
            }];
    

      

  • 相关阅读:
    Codeforces Round #610 (Div. 2)C(贪心,思维)
    Educational Codeforces Round 80 (Rated for Div. 2)C(DP)
    BZOJ2190 仪仗队
    BZOJ3613 南园满地堆轻絮
    BZOJ1084 最大子矩阵
    BZOJ1036 树的统计Count
    BZOJ1452 Count
    BZOJ2242 计算器
    BZOJ2705 Longge的问题
    BZOJ1509 逃学的小孩
  • 原文地址:https://www.cnblogs.com/zhaozishuang/p/6373873.html
Copyright © 2011-2022 走看看