除了明显的差异:
enumerateObjectsUsingBlock时,你既需要索引和对象enumerateObjectsUsingBlock当你需要修改局部变量时不要使用被enumerateObjectsUsingBlock普遍认为是好还是坏的时候for (id obj in myArray)也将工作?有哪些优点/缺点(例如性能或多或少)?
我正在阅读关于枚举的NSHipster文章,该文章声称for-in循环比以下更快enumerateObjectsUsingBlock::
除非你在迭代时实际需要数字索引,否则使用for/in NSFastEnumeration循环几乎总是更快.
这个答案为该引用提供了一些反驳:
快速枚举需要从内部表示转换为快速枚举的表示.其中有开销.基于块的枚举允许集合类以最快遍历本机存储格式的速度枚举内容.
从内部表示转移到快速枚举的表示的翻译过程是什么?我知道那里有一些开销,但多少钱?