1

我正在阅读关于枚举的 NSHipster 文章,该文章声称 for-in 循环比enumerateObjectsUsingBlock:

除非您在迭代时确实需要数字索引,否则使用 for/in NSFastEnumeration 循环几乎总是更快。

这个答案为该引用提供了一些反驳:

快速枚举需要从内部表示转换为快速枚举的表示。其中有开销。基于块的枚举允许集合类以最快的速度遍历本机存储格式来枚举内容。

从内部表示转移到快速枚举表示的翻译过程是什么?我知道那里有一些开销,但有多少?

4

1 回答 1

7

真正的答案: 对几乎任何现实世界的程序来说都没有区别。在性能量化过程中发现实际问题之前不要担心。如果循环的执行速度很重要,那么您的整个应用程序架构很可能是错误。

话虽如此,肯定有一些值得追求的学术好奇心。

看:

Objective-C enumerateUsingBlock 与快速枚举?

于 2013-10-01T14:29:33.240 回答