Objective-C 빠른 열거

빠른 열거는 컬렉션을 통해 열거하는 데 도움이되는 Objective-C의 기능입니다. 따라서 빠른 열거에 대해 알기 위해서는 다음 섹션에서 설명 할 컬렉션에 대해 먼저 알아야합니다.

Objective-C의 컬렉션

컬렉션은 기본 구조입니다. 다른 개체를 보관하고 관리하는 데 사용됩니다. 컬렉션의 전체 목적은 개체를 효율적으로 저장하고 검색하는 일반적인 방법을 제공하는 것입니다.

여러 가지 유형의 컬렉션이 있습니다. 그들은 모두 다른 물체를 잡을 수 있다는 동일한 목적을 수행하지만, 물체를 회수하는 방식은 대부분 다릅니다. Objective-C에서 사용되는 가장 일반적인 컬렉션은 다음과 같습니다.

  • NSSet
  • NSArray
  • NSDictionary
  • NSMutableSet
  • NSMutableArray
  • NSMutableDictionary

이러한 구조에 대한 자세한 내용은 Foundation Framework의 데이터 저장소를 참조하십시오 .

빠른 열거 구문

for (classType variable in collectionObject ) { 
  statements 
}

다음은 빠른 열거의 예입니다.

#import <Foundation/Foundation.h>

int main() {
   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
   NSArray *array = [[NSArray alloc]
   initWithObjects:@"string1", @"string2",@"string3",nil];
   
   for(NSString *aString in array) {
      NSLog(@"Value: %@",aString);
   }
   
   [pool drain];
   return 0;
}

이제 프로그램을 컴파일하고 실행하면 다음과 같은 결과를 얻을 수 있습니다.

2013-09-28 06:26:22.835 demo[7426] Value: string1
2013-09-28 06:26:22.836 demo[7426] Value: string2
2013-09-28 06:26:22.836 demo[7426] Value: string3

출력에서 볼 수 있듯이 배열의 각 객체는 순서대로 인쇄됩니다.

뒤로 빠른 열거

for (classType variable in [collectionObject reverseObjectEnumerator] ) { 
  statements 
}

다음은 빠른 열거에서 reverseObjectEnumerator에 대한 예입니다.

#import <Foundation/Foundation.h>

int main() {
   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
   NSArray *array = [[NSArray alloc]
   initWithObjects:@"string1", @"string2",@"string3",nil];
   
   for(NSString *aString in [array reverseObjectEnumerator]) {
      NSLog(@"Value: %@",aString);
   }
   
   [pool drain];
   return 0;
}

이제 프로그램을 컴파일하고 실행하면 다음과 같은 결과를 얻을 수 있습니다.

2013-09-28 06:27:51.025 demo[12742] Value: string3
2013-09-28 06:27:51.025 demo[12742] Value: string2
2013-09-28 06:27:51.025 demo[12742] Value: string1

출력에서 볼 수 있듯이 배열의 각 개체가 인쇄되지만 일반적인 빠른 열거와 비교할 때 역순으로 인쇄됩니다.