Sorting an NSArray of NSString

CodeGuy picture CodeGuy · Dec 30, 2010 · Viewed 26.1k times · Source

Can someone please show me the code for sorting an NSMutableArray? I have the following NSMutableArray:

NSMutableArray *arr = [[NSMutableArray alloc] init];

with elements such as "2", "4", "5", "1", "9", etc which are all NSString.

I'd like to sort the list in descending order so that the largest valued integer is highest in the list (index 0).

I tried the following:

[arr sortUsingSelector:@selector(compare:)];

but it did not seem to sort my values properly.

Can someone show me code for properly doing what I am trying to accomplish? Thanks!

Answer

HyLian picture HyLian · Dec 30, 2010

You should use this method:

[arr sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

in a NSArray or:

[arr sortUsingSelector:@selector(caseInsensitiveCompare:)];

in a "inplace" sorting NSMutableArray

The comparator should return one of this values:

  • NSOrderedAscending
  • NSOrderedDescending
  • NSOrderedSame