• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

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?