私はNSArray
を取得しており、特別なケースでは逆方向に反復処理する必要があるため、最初の最後の要素を確認します。これはパフォーマンス上の理由によるものです。最後のものが意味をなさない場合は、以前のすべてを無視できます。だから私はループを壊したいと思います。しかし、0からnまで順方向に反復すると、それは機能しません。 nから0に移動する必要があります。おそらく、知らないメソッドまたは関数があるため、ここでホイールを再発明する必要はありません。
他の回答を追加するには、-[NSArray reverseObjectEnumerator]
Objective-C 2.0の高速列挙機能と組み合わせて(iPhone、Leopardで利用可能):
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]
より極端な方法(パフォーマンスが非常に重要な場合)
他にもあるかもしれません。その場合、どなたでも自由に追加していただけます。
ここ から:
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]);
}