for in快速枚举,遍历时是有序还是随机的?
ringa_lee
高速列挙における
OC は、コンテナ内の要素の順序に従って走査します (NSArray 内の要素の順序は追加した順序であり、NSSet と NSDictionry 内の要素の順序はそれに従うものです)基礎となるアルゴリズムに追加した順序とは異なる順序で並べ替えられました) が列挙されました。
NSArray
NSSet
NSDictionry
for in を使用して NSMutableArray などの可変オブジェクトを迅速に列挙する場合は、コンテナーを変更しないように注意してください。変更しないと、トラバーサーが例外をスローし、プログラムがクラッシュする原因になります。
NSMutableArray
最初から最後まで順に
秩序ある。たとえば、配列は順序付けされていますが、辞書は順序付けされていません。
それが理にかなっているのであれば、それは正しいことです。 。 。
順番に並べる必要があります
for-in を使用してコンテナーを移動する場合:
NSArray は配列インデックスの順序で走査されます。
NSDictionary。ディクショナリのキー配列を走査し、valueForKey: を通じて値を取得します。
NSSet は順序付けされていません。
高速列挙における
OC は、コンテナ内の要素の順序に従って走査します (
NSArray
内の要素の順序は追加した順序であり、NSSet
とNSDictionry
内の要素の順序はそれに従うものです)基礎となるアルゴリズムに追加した順序とは異なる順序で並べ替えられました) が列挙されました。for in を使用して
NSMutableArray
などの可変オブジェクトを迅速に列挙する場合は、コンテナーを変更しないように注意してください。変更しないと、トラバーサーが例外をスローし、プログラムがクラッシュする原因になります。最初から最後まで順に
秩序ある。たとえば、配列は順序付けされていますが、辞書は順序付けされていません。
それが理にかなっているのであれば、それは正しいことです。 。 。
順番に並べる必要があります
for-in を使用してコンテナーを移動する場合:
NSArray は配列インデックスの順序で走査されます。
NSDictionary。ディクショナリのキー配列を走査し、valueForKey: を通じて値を取得します。
NSSet は順序付けされていません。