• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

NSMutableArray mit NSNumber Elementen sortieren

bginner

Ingrid Marie
Registriert
13.12.09
Beiträge
266
Hallo zusammen,

ich habe ein kleines Programm geschrieben welches Dezimalwerte, die vom Benutzer eibgegeben werden
in Binär-Werte umrechnet.
Alles funktioniert soweit bis auf die Sortierung. Die binär-Werte stehen zum Schluss in umgekehrter Reihenfolge in einem Array (binaryValues)
und das ist schlecht...die Reihenfolge soll umgedreht werden.
Jetzt habe ich mir gedacht das ich mir einfach einen NSSortDescriptor baue und diesem dann die Nachricht reservedSortDescriptor schicke.
Das Problem liegt aber schon in der Erstellung des Descriptors, da ich nicht weiß mit welchem Key ich diesen initialisiren muss/sollte.

Hier der Codes des Model der Anwendung:
Code:
-(NSArray *)convertToBinary:(int)dezValue
{
    NSSortDescriptor *myDescriptor = [[NSSortDescriptor alloc] initWithKey:(NSString *)key ascending:YES];
    
    binaryValues = [[NSMutableArray alloc] init];
    
    while (dezValue != 0) 
    {
        rest = [NSNumber numberWithInt:dezValue%2];
        [binaryValues addObject:rest];
        dezValue = dezValue/2;
    }
    
    return [binaryValues sortUsingDescriptors:[NSArray arrayWithObject:[myDescriptor reversedSortDescriptor]]];
Eine Sortierung mit einem Selector bringt mich aber nach meinem bishereigen Kenntnisstand auch nicht weiter.
Weiß jemand Rat?
 
Weil du keine Entitäten verwendest, gibt es auch keine Keys ( Negm-Awad, Objective-C und Cocoa I, S. 152 f.). Es könnte sein, dass self als Key hilft, ist aber ein bisschen gefrickelt. Mit +sortedArrayUsingSelector: (NSArray) schreibst du dir einfach eine Methode von NSNumber (Kategorie), die den Vergleich durchführt. Du kannst auch eine Funktion schreiben und entsprechend sortedArrayUsingFunction: verwenden.

Aber wieso hast du nackte Nummern?