Sorting array(NSArray) in descending order

后端 未结 3 833
别跟我提以往
别跟我提以往 2020-12-25 14:58

I have a array of NSString objects which I have to sort by descending.

Since I did not find any API to sort the array in descending order I approached by following w

相关标签:
3条回答
  • 2020-12-25 15:12

    You can use NSSortDescriptor:

    NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO selector:@selector(localizedCompare:)];
    NSArray* sortedArray = [inFileTypes sortedArrayUsingDescriptors:@[sortDescriptor]];
    

    Here we use localizedCompare: to compare the strings, and pass NO to the ascending: option to sort in descending order.

    0 讨论(0)
  • 2020-12-25 15:26

    or simplify your solution:

    NSArray *temp = [[NSArray alloc] initWithObjects:@"b", @"c", @"5", @"d", @"85", nil];
    NSArray *sortedArray = [temp  sortedArrayUsingComparator:
                            ^NSComparisonResult(id obj1, id obj2){
                                //descending order
                                return [obj2 compare:obj1]; 
                                //ascending order
                                return [obj1 compare:obj2];
                            }];
    NSLog(@"%@", sortedArray);
    
    0 讨论(0)
  • 2020-12-25 15:30
    NSSortDescriptor *sortDescriptor; 
    sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"length" ascending:NO];
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    [wordsArray sortUsingDescriptors:sortDescriptors];
    

    Using this code we can sort the array in descending order on the basis of length.

    0 讨论(0)
提交回复
热议问题