for(... in ...)用起來非常方便、簡潔,同時 enumerateObjectsUsingBlock: 也有很多新特性:
通常enumerateObjectsUsingBlock: 和 (for(... in ...)在效率上基本一致饱搏,有時會快些眉踱。主要是因為它們都是基于 NSFastEnumeration 實現(xiàn)的. 快速迭代在處理的過程中需要多一次轉(zhuǎn)換,當(dāng)然也會消耗掉一些時間. 基于Block的迭代可以達到本機存儲一樣快的遍歷集合. 對于字典同樣適用腥放,而數(shù)組的迭代卻不行。
注意"enumerateObjectsUsingBlock" 修改局部變量時边琉, 你需要聲明局部變量為 __block 類型.
enumerateObjectsWithOptions:usingBlock: 支持并發(fā)迭代或反向迭代属百,并發(fā)迭代時效率也非常高.
對于字典而言, enumerateObjectsWithOptions:usingBlock 也是唯一的方式可以并發(fā)實現(xiàn)恢復(fù)Key-Value值.