• iOS开发——循环遍历的比较


      常用的有for in、for循环、EnumerateObjectsUsingBlock

      1、小规模的数据无所谓,但是对大量数据,for in 的遍历速度非常之快,不是for循环能比的;

      2、对于数组,推荐使用 enumerateObjectsUsingBlock的并行方法,[array enumerateObjectsUsingBlock:<#^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop)block#>],对象,索引,还能控制遍历的停止。(stop的使用:*stop = YES);

      3、对于字典, 推荐使用enumerateKeysAndObjectsUsingBlock[dic enumerateKeysAndObjectsUsingBlock:<#^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop)block#>],block版本的字典遍历可以同时取key和value,forin只能取key,再自己去取value,同样的可以控制遍历的停止。

      4、forin实际上是快速枚举,跟for循环意义上还是有区别的。NSArray的枚举操作中有一条需要注意:对于可变数组进行枚举操作时,不能通过添加或删除对象等这类操作来改变数组容器,否则就会报错。而本身这种操作也是有问题的,说好了遍历,看可以,不要动手动脚的嘛!数组容器已经改变,可能遍历到没有分配的位置,用for循环机器不能自己察觉,但是枚举器可以察觉。

  • 相关阅读:
    JavaScript——闭包(转自别人)
    JavaScript ——内部函数和匿名函数
    socks5代理服务器ss5配置
    TCP部首长度定义
    九个Console命令,让js调试更简单
    一位前端新手入住博客园
    动画库 Tweenmax 使用示例1
    Dijkstra算法实例
    N皇后问题
    华为精益研发外包 PDF
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/7886025.html
Copyright © 2020-2023  润新知