配列の高速列挙は常にインデックス順になりますか?
for (NSDictionary *zone in myArray)
{
//do code
}
それは常にインデックスの場所0、1、2、...、nから列挙されますか?
コードが読みやすくなるため、標準のforループよりも高速な列挙を好みます。
配列の高速列挙は常にインデックス順になりますか?
for (NSDictionary *zone in myArray)
{
//do code
}
それは常にインデックスの場所0、1、2、...、nから列挙されますか?
コードが読みやすくなるため、標準のforループよりも高速な列挙を好みます。
はい、そうなります:
NSArrayや配列から派生したNSEnumeratorインスタンスなど、明確に定義された順序を持つコレクションまたは列挙子の場合、列挙はその順序で進行するため、必要に応じて、反復をカウントするだけでコレクションに適切なインデックスが付けられます。
インデックスを使用して配列を高速に列挙するには、ブロックを使用します。
[myArray enumerateObjectsUsingBlock:^(NSObject *object, NSUInteger idx, BOOL *stop) {
...
// idx is myArray's index
}];