Domanda Come si ordina un NSMutableArray per lunghezza NSString?


Ho un NSMutableArray contenente NSStrings di varie lunghezze. Come dovrei fare per ordinare l'array in base alla lunghezza della stringa?


14
2018-02-14 12:05


origine


risposte:


Vedi la mia risposta a ordinamento di matrici con oggetti personalizzati:

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"length"
                                              ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

[myArray sortUsingDescriptors:sortDescriptors];

27
2018-02-14 12:09



Ecco come l'ho fatto (amami qualche blocco!)

_objects = [matchingWords sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
        NSNumber *alength = [NSNumber numberWithInt:((NSString*)a).length];
        NSNumber *blength = [NSNumber numberWithInt:((NSString*)b).length];
        return [alength compare:blength];
    }];

3
2017-11-11 06:03