如果我们要遍历一个数组, 上过编程课程的童鞋都会想到For语句去循环.

Objective C 提供一个Block的遍历方法, 那么用它还是用For好呢?

下面我们去实践一下:

遍历一个数组看谁快

参赛选手 ForLoop, For - in, enumerateObjectsUsingBlock这个三个方法:

 

  • For-in方法最快速
    结论:
    当只是遍历一个数组的时候使用For-in会比较快速, 推荐使用For-in遍历数组.

通过Value查找Index看谁快

假如现在我们要查找一个Value, 这个Value 值是100001, 找出它的index (数组的序列号).

那么现在我们来比较一下

参赛选手 For - in, enumerateObjectsUsingBlock, enumerateObjectsWithOptions 这个三个方法: (ForLoop已经不再继续讨论了)

 

  • enumerateObjectsWithOptions方法最快速
    结论:
    通过Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWithOptions的并行方法.
  • For-inenumerateObjectsWithOptions方法这里我比较喜欢第二种写法简洁直观.

现在咱们要遍历字典

这里我们比较一下使用 For-inenumerateKeysAndObjectsUsingBlock 这个两个方法:

 

enumerateKeysAndObjectsUsingBlock胜出

结论:

当我们想遍历字典类型的时候, 推荐使用enumerateKeysAndObjectsUsingBlock

不仅仅是因为速度快, 更是因为代码更优雅和直观.

posted on 2016-01-08 11:30  丑蛋蛋  阅读(445)  评论(0编辑  收藏  举报