1. 程式人生 > >for in、for和EnumerateObjectsUsingBlock遍歷的區別

for in、for和EnumerateObjectsUsingBlock遍歷的區別

value cts mut 很多 普通 使用 keys bsp 枚舉

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)



for in、for和EnumerateObjectsUsingBlock遍歷的區別