相关疑难解决方法(0)

何时使用enumerateObjectsUsingBlock vs.

除了明显的差异:

  • 使用enumerateObjectsUsingBlock时,你既需要索引和对象
  • enumerateObjectsUsingBlock当你需要修改局部变量时不要使用(我错了,见bbum的答案)

enumerateObjectsUsingBlock普遍认为是好还是坏的时候for (id obj in myArray)也将工作?有哪些优点/缺点(例如性能或多或少)?

multithreading objective-c ios4 objective-c-blocks

150
推荐指数
4
解决办法
6万
查看次数

enumerateObjectsUsingBlock:比for-in循环更快吗?为什么?

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

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

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

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

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

objective-c nsfastenumeration

1
推荐指数
1
解决办法
1997
查看次数