2011년 4월 17일 일요일

[iOS] NSArray Enumeration

NSArray 혹은 NSMutableArray를 순차탐색(Enumeration) 하기 위한 3가지 방법 메모.

1. objectAtIndex
for (int i=0; i < [someArray count]; i++) {
  SomeObject* obj = [someArray objectAtIndex:i];
  ...
}
C의 array나 Python의 리스트 처럼 특정 순번의 엘리먼트를 엑세스 하는 방법을 이용하는 기본적인 방법. 매우 C 스러운 방법 이기도 하기에 직관적이긴 하다. 역순으로 돌아다니려면 그냥 for 루프의 인덱스를 뒤집으면 끝.

2. NSEnumerator
NSEnumerator* e = [someArray objectEnumerator];
while ((SomeObject* obj = [someArray nextObject])) {
  ...
}
C++ 스러운 스타일의 NSEnumerator를 이용한 순차적 접근법. someArray의 objectEnumerator 대신 reverseObjectEnumerator를 이용해 역순 탐색도 가능하다.

3. for ... in ...
for (SomeObject* obj in someArray) {
  ...
}
이것은..!! Python 스러운 코드다! 게다가 굉장히 간단해!!! 사랑스럽고도 가독성도 좋은 코드다! ... 하지만 역순 탐색은 못 할 것 같은데... (' - ')?

여기까지.

댓글 없음 :