for in快速枚举,遍历时是有序还是随机的?
ringa_lee
빠른 열거의 OC는 컨테이너에 있는 요소의 순서에 따라 순회합니다. (NSArray의 요소 순서는 추가한 순서이고, NSSet 및 NSDictionry의 요소 순서는 다음과 같습니다. 추가한 순서와 다른 순서로 정렬된 기본 알고리즘에 열거됩니다.
NSArray
NSSet
NSDictionry
NSMutableArray과 같은 변경 가능한 객체를 빠르게 열거하기 위해 for in을 사용할 때 컨테이너를 수정하지 않도록 주의해야 합니다. 그렇지 않으면 순회자가 예외를 발생시키고 프로그램이 충돌하게 됩니다.
NSMutableArray
처음부터 끝까지
질서있게. 예를 들어 배열은 순서가 지정되고 사전은 순서가 지정되지 않습니다.
말이 된다면 맞는 것입니다. . .
순서대로 해야 합니다
for-in을 사용하여 컨테이너를 순회하는 경우:
NSArray는 배열 인덱스 순서대로 순회됩니다.
NSDictionary는 사전의 키 배열을 순회한 다음 valueForKey:를 통해 값을 얻는 것입니다.
NSSet이 순서가 지정되지 않았습니다.
빠른 열거의 OC는 컨테이너에 있는 요소의 순서에 따라 순회합니다. (
NSArray
의 요소 순서는 추가한 순서이고,NSSet
및NSDictionry
의 요소 순서는 다음과 같습니다. 추가한 순서와 다른 순서로 정렬된 기본 알고리즘에 열거됩니다.NSMutableArray
과 같은 변경 가능한 객체를 빠르게 열거하기 위해 for in을 사용할 때 컨테이너를 수정하지 않도록 주의해야 합니다. 그렇지 않으면 순회자가 예외를 발생시키고 프로그램이 충돌하게 됩니다.처음부터 끝까지
질서있게. 예를 들어 배열은 순서가 지정되고 사전은 순서가 지정되지 않습니다.
말이 된다면 맞는 것입니다. . .
순서대로 해야 합니다
for-in을 사용하여 컨테이너를 순회하는 경우:
NSArray는 배열 인덱스 순서대로 순회됩니다.
NSDictionary는 사전의 키 배열을 순회한 다음 valueForKey:를 통해 값을 얻는 것입니다.
NSSet이 순서가 지정되지 않았습니다.