如果我们要遍历一个数组, 上过编程课程的童鞋都会想到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-in和enumerateObjectsWithOptions方法这里我比较喜欢第二种写法简洁直观.
现在咱们要遍历字典
这里我们比较一下使用 For-in 和 enumerateKeysAndObjectsUsingBlock 这个两个方法:
enumerateKeysAndObjectsUsingBlock胜出
结论:
当我们想遍历字典类型的时候, 推荐使用enumerateKeysAndObjectsUsingBlock
不仅仅是因为速度快, 更是因为代码更优雅和直观.