for in、for和EnumerateObjectsUsingBlock遍历的区别

1.对于集合中对象数很多的情况下,for in 的遍历速度非常之快,但小规模的遍历并不明显(还没普通for循环快)

2. 如果在for in 循环里,对这个数组进行了修改的话,无论是增,删,修改数组元素位置,都会扔一个异常出来,枚举的过程中数组发生了突变(<__NSArrayM: 0xa4fc000> was mutated while being enumerated.),但是枚举器可以察觉.

3.Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWithOptions的并行方法.

4.遍历字典类型的时候, 推荐使用enumerateKeysAndObjectsUsingBlock,block版本的字典遍历可以同时取key和value(forin只能取key再手动取value)



原文地址:https://www.cnblogs.com/Mr-zyh/p/8376435.html