Search code examples
objective-csortingnsarray

Sorting in nsmutable array


Suppose I have following data in my game. I have developed game in cocos2d.

Name    Score
Sagar   10000
Amit     2000
Vishal     90

Above data is stored in plist file.

Plist has an array as root.

Within that there are 10 dictionary.

Each dictionary has two values:

  • String values - Name
  • Number value - score

When I use

NSMutableArray *x=[[NSMutableArray alloc] initWithContentsOfFile:@"Sagar.plist"];

I want to sort this mutable array by score.

Is it possible?


Solution

  • Use a sort descriptor:

    NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease];
    NSArray * descriptors = [NSArray arrayWithObject:sortByScore];
    NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];