当前位置: 首页 > news >正文

遍历字典 NSDictionary

遍历字典内容的方式一般有两种 enumerateKeysAndObjectsUsingBlockenumerateObjectsWithOptions

enumerateObjectsWithOptions 可以设置遍历的类型:

NSEnumerationConcurrent = (1UL << 0), // 并发模式 NSEnumerationReverse = (1UL << 1), //倒序模式

   NSDictionary *demoDic = @{@"a":@"0",
                              @"b":@"1",
                              @"c":@"2",
                              @"d":@"3",
                              @"e":@"4",
                              @"f":@"5",
                              @"g":@"6"
                              };
复制代码
    [demoDic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        NSLog(@"key: %@, value: %@", key, obj);
        // do something
    }];
复制代码

对于耗时且顺序无关的遍历,使用并发版本

遍历执行 block 会分配在多核cpu上执行。充分发挥多核心 CPU 的效率。

    [demoDic enumerateKeysAndObjectsWithOptions:NSEnumerationConcurrent usingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            NSLog(@"key: %@, value: %@", key, obj);
             // do something
        }];
复制代码

转载于:https://juejin.im/post/5a93c9516fb9a063535066b1

相关文章:

  • 2012金华邀请赛解题报告
  • Java9 新特性 详解
  • 设置Google浏览器不缓存JS
  • IntelliJ Idea 常用快捷键列表
  • SpringCloud教程 | 第三篇: 服务消费者(Feign)
  • 前端远程调试
  • 与Brian Goetz聊Java的数据类
  • Git 系列(一):什么是 Git
  • 第十一章 LAMP架构
  • 《Arduino实战》——第1章 你好Arduino 1.1 Arduino简史
  • C++程序设计:原理与实践(进阶篇)17.7 使用Shape类
  • 微信小程序计算器后后续
  • 1020. 月饼 (25)
  • 防御XSS攻击的七条原则
  • Oralce分析函数
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • angular学习第一篇-----环境搭建
  • css系列之关于字体的事
  • javascript面向对象之创建对象
  • Java多线程(4):使用线程池执行定时任务
  • js正则,这点儿就够用了
  • SQL 难点解决:记录的引用
  • Sublime text 3 3103 注册码
  • tab.js分享及浏览器兼容性问题汇总
  • vue-loader 源码解析系列之 selector
  • 闭包,sync使用细节
  • 测试开发系类之接口自动化测试
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 深入浏览器事件循环的本质
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • AI算硅基生命吗,为什么?
  • Hibernate主键生成策略及选择
  • ​马来语翻译中文去哪比较好?
  • $forceUpdate()函数
  • (007)XHTML文档之标题——h1~h6
  • (3)llvm ir转换过程
  • (C)一些题4
  • (Java数据结构)ArrayList
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (转)winform之ListView
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .equals()到底是什么意思?
  • .net core 依赖注入的基本用发
  • .NET MVC第三章、三种传值方式
  • .netcore 获取appsettings
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @SpringBootApplication 包含的三个注解及其含义
  • [ C++ ] STL_list 使用及其模拟实现
  • [ C++ ] STL---string类的模拟实现
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [Angular] 笔记 6:ngStyle
  • [BZOJ 4598][Sdoi2016]模式字符串