我正在阅读NSHipster article on enumeration,声称for-in循环比enumerateObjectsUsingBlock:
更快:
除非你在迭代时确实需要数字索引,否则使用for / in NSFastEnumeration循环几乎总是更快。
This answer为该引用提供了一些反驳:
快速枚举需要从内部表示转换为快速枚举的表示。其中有开销。基于块的枚举允许集合类以最快遍历本机存储格式的速度枚举内容。
从内部表示转移到快速枚举的表示的翻译过程是什么?我知道那里有一些开销,但是多少?
答案 0 :(得分:7)
真正的答案:对于几乎所有现实世界的程序都没有区别。和在性能量化过程中发现实际问题之前不要担心。和如果循环的执行速度很重要,那么整个应用程序架构可能就是错误。
话虽如此,肯定有一些学术上的好奇心值得追求。
请参阅: