Ich habe eine NSArray
und muss sie in einem speziellen Fall rückwärts durchlaufen, damit ich zuerst das letzte Element betrachte. Es ist aus Leistungsgründen: Wenn der letzte einfach keinen Sinn ergibt, können alle vorherigen ignoriert werden. Also möchte ich die Schleife brechen. Aber das wird nicht funktionieren, wenn ich von 0 nach n vorwärts iteriere. Ich muss von n auf 0 gehen. Vielleicht gibt es eine Methode oder Funktion, die ich nicht kenne, also müsste ich das Rad hier nicht neu erfinden.
objective-c
nsarray
Vielen Dank
quelle
quelle
Antworten:
Um die anderen Antworten hinzuzufügen, können Sie sie
-[NSArray reverseObjectEnumerator]
in Kombination mit der Funktion zur schnellen Aufzählung in Objective-C 2.0 (verfügbar in Leopard, iPhone) verwenden:for (id someObject in [myArray reverseObjectEnumerator]) { // print some info NSLog([someObject description]); }
Quelle mit weiteren Informationen: http://cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
quelle
[myArray count]-1
? Wie iteriert manNSString
rückwärts?NSDictionary
sie keine 'Bestellung' haben. Sie können sie in beliebiger Reihenfolge auflisten, es sei denn, Sie bestellen zuerst die Schlüssel / Werte.Da dies für die Aufführung gedacht ist, haben Sie eine Reihe von Optionen und sollten sie alle ausprobieren, um herauszufinden, welche am besten funktioniert.
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]
-[NSArray reverseObjectEnumerator]
Extremere Methoden (wenn die Leistung überkritisch ist)
Es kann andere geben. In diesem Fall kann jeder es hinzufügen.
quelle
Von hier aus :
NSEnumerator* myIterator = [myArray reverseObjectEnumerator]; id anObject; while( anObject = [myIterator nextObject]) { /* do something useful with anObject */ }
quelle
quelle
for (int i = ((int)[array count] - 1); i > -1; i--) { NSLog(@"element: %@",array[i]); }
quelle