나는 NSArray
을 얻었고 특수한 경우 뒤에서 반복해야하므로 마지막 요소를 먼저 봅니다. 성능상의 이유로 : 마지막 하나가 이해가되지 않는다면 이전의 모든 것들은 무시할 수 있습니다. 그래서 루프를 깰 싶습니다. 하지만 0부터 n까지 앞으로 반복 할 경우 작동하지 않습니다. n에서 0으로 갈 필요가 있습니다. 모르는 방법이나 함수가있을 수 있으므로 휠을 다시 만들 필요가 없습니다. here에서NSArray를 거꾸로 반복하는 쉬운 방법이 있습니까?
답변
는 다른 답변에 추가하려면 , 당신은 오브젝티브 C 2.0에서 빠른 열거 기능과 함께 -[NSArray reverseObjectEnumerator]
을 사용할 수 있습니다 (레오파드에서 사용할 수, 아이폰) : 좀 더 많은 정보와
for (id someObject in [myArray reverseObjectEnumerator])
{
// print some info
NSLog([someObject description]);
}
출처 : http://cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
이것은 빠른 열거 형으로 간주 되나'[myArray count] -1'에서 시작하는 일반 for 루프보다 빠릅니까? 'NSString'을 거꾸로 어떻게 반복합니까? – ma11hew28
지금 당장 링크가 없지만 Apple 엔지니어가 열거 속도가 얼마나 빠르며 왜 빠른지 설명하는 어딘가의 비디오 (WWDC 일 수 있음)가 있습니다. 그것은 인덱스 기반 NSArray 열거 형과 고전적인 Foundation 열거 자보다 성능이 우수합니다. 시나리오에 따라 많이 다릅니다. –
사전에 루프를 역으로 실행해야합니까? 어떻게 그렇게 할 수 있습니까? –
[NsArray reverseObjectEnumerator]
이 이후
NSEnumerator* myIterator = [myArray reverseObjectEnumerator];
id anObject;
while(anObject = [myIterator nextObject])
{
/* do something useful with anObject */
}
은의 performace를 들어,이 옵션을 가지고 잘 모두가 가장 적합한 볼을 시도하는 것이 좋습니다 것입니다.
-[NSArray reverseObjectEnumerator]
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]
-
그 일반적으로
- 사용을 통해 루프에 대한 표준 C를 반복하고 시작하고 배열을 거꾸로 작동합니다. (성능이 슈퍼 중요 경우)
더 극단적 인 방법은
- 코코아 빠른 개체 열거를 구현하고 반대로 자신의 동등한를 만드는 방법에 최대 읽기.
- C 또는 C++ 배열을 사용하십시오.
다른 것들이있을 수 있습니다. 어떤 경우 에라도 누구나 자유롭게 추가 할 수 있습니다.
나는 enumerateObjectsWithOptions : NSEnumerationReverse가 최상의 대답이라고 말하고 싶습니다. 특히 당신은 당신이 어떤 색인인지 알 필요가 있습니다. 감사!!! –
for (int i = ((int)[array count] - 1); i > -1; i--) {
NSLog(@"element: %@",array[i]);
}
"Objective-C에서 NSArray를 어떻게 반전시킬 수 있습니까?" 완전히 다른 질문입니다. – Nestor
스위프트 : http://stackoverflow.com/questions/24508592/how-to-iterate-for-loop-in-reverse-order-in-swift – Suragch