1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

reverse aus einem array

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Poljpocket, 08.03.09.

  1. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Hallo, ich habe eine kleine, simple Frage:

    Ich möchte in einer for-Schleife mittels NSFastEnumeration einen array behandeln, der aber von hinten nach vorne durchgegangen werden sollte. Ich glaube einen Weg gefunden zu haben, dieses Problem zu lösen, weil NSArray keine Funktion, ein Inverses seiner selbst herauszugeben, hat:

    Code:
    // array sei existent und vom Typ NSArray …
    
    NSArray *reverseArray = [[array reverseObjectEnumerator] allObjects];
    
    for (id value in reverseArray) {
    [INDENT]…[/INDENT]
    }
    
    
    Ich kann aus der Dokumentation nur nicht herauslesen, ob dies wirklich funktioniert. Ich kanns auch nicht direkt testen, weil es nur eine effizientere Lösung wäre, die schlussendlich das selbe Resultat zur Folge hätte.

    Weiss das jemand, oder hat jemand eine bessere Lösung auf Lager?

    Danke vielmals, ppocket
     
  2. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Das ist aber durch die Brust ins Auge.

    Mach es doch einfach klassisch, ohne Fast Enumeration

    Alex
     
  3. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Ja, so hab ich das mittlerweile auch gelöst, danke!
     
  4. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Der Ansatz mit der Fast-Enumeration ist absolut richtig. Was du übersiehst, ist, dass man FE nicht nur auf Collections anwenden kann, sondern auf jede Instanz einer Klasse, die das FE-Protokoll implementiert. Und hierzu gehört auch der Enumerator. Richtig ist daher
    Code:
    NSEnumerator* enum = [yourArray reverseObjectEnumerator];
    for( id item in enum ) {
       // …
    }
    Siehe hierzu auch: Negm-Awad, Objective-C und Cocoa I, 1./3. Auflage, S. 322 f.
     
    Jamsven gefällt das.
  5. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Was macht das besser als die klassische Methode? Hat das ein besseres Laufzeitverhalten?

    Alex
     
  6. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665

Diese Seite empfehlen