반응형
NSArray를 반복하는 쉬운 방법이 거꾸로?
나는을 가지고 NSArray
있고 특별한 경우에 거꾸로 반복해야한다. 그래서 나는 먼저 마지막 요소를 본다. 성능상의 이유 때문입니다. 마지막 항목이 의미가 다음 항목은 모두 무시할 수 있습니다. 그래서 루프를 깨고 싶습니다. 그러나 0에서 계속 반복하면 작동하지 않습니다. n에서 0으로 이동해야합니다. 내가 모르는 방법 나 함수가 여기서 바퀴를 다시 만들 필요가 없습니다.
다른 답변을 추가 비용 청구 -[NSArray reverseObjectEnumerator]
Objective-C 2.0 (Leopard, iPhone에서 사용 가능)의 빠른 열거과 함께 사용할 수 있습니다.
for (id someObject in [myArray reverseObjectEnumerator])
{
// print some info
NSLog([someObject description]);
}
더 많은 정보가있는 출처 : http://cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
이것이 성능을위한 것 실행 옵션이 즉 가장 잘 작동하는지 확인하기 위해 시도하는 것이 좋습니다.
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]
-[NSArray reverseObjectEnumerator]
- 배열의 역 복사본을 다음 반복 반복합니다.
- 표준 C for 루프를 사용하고 배열을 통해 거꾸로 시작하고 작업합니다.
보다 극단적 인 방법 (성능이 매우 중요한 경우)
- Cocoa가 어떻게 수행하는 것으로부터 구현하고 그에 대한 것입니다.
- C 또는 C ++ 배열을 사용하십시오.
다른 것이 가능합니다. 이 경우 누구나 자유롭게 추가 할 수 있습니다.
에서 여기 :
NSEnumerator* myIterator = [myArray reverseObjectEnumerator];
id anObject;
while( anObject = [myIterator nextObject])
{
/* do something useful with anObject */
}
[NsArray reverseObjectEnumerator]
for (int i = ((int)[array count] - 1); i > -1; i--) {
NSLog(@"element: %@",array[i]);
}
참고 URL : https://stackoverflow.com/questions/844189/is-there-an-easy-way-to-iterate-over-an-nsarray-backwards
반응형
'ProgramingTip' 카테고리의 다른 글
조건에 따라 목록에서 항목 제거 (0) | 2020.11.09 |
---|---|
Android FragmentTransaction 사용자 정의 애니메이션 (알 수없는 애니메이터 이름 : 번역) (0) | 2020.11.09 |
Rails + New Relic : RPM은 무엇을 의미합니까? (0) | 2020.11.09 |
Guzzle에서 예외 잡기 (0) | 2020.11.09 |
지원 라이브러리 VectorDrawable 리소스 $ NotFoundException (0) | 2020.11.09 |