• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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?