iOSPawan
iOSPawan

Reputation: 2894

How can I sort an NSArray containing NSDictionaries?

I have an NSArray which contains NSDictionary objects. Each of these NSDictionary objects contains an ORDER key.

How can I sort this NSArray based on this key within each of these NSDictionaries?

Upvotes: 1

Views: 1739

Answers (3)

kamalesh kumar yadav
kamalesh kumar yadav

Reputation: 966

To Sort array of dictionaries you have to use NSSortDescriptor by this you can sort array of dictionaries based on key

here in code, pass the NSMutableArray with dict Object by mean which you want to sort it

-(NSMutableArray*)sortingArrayOfDict:(NSMutableArray *)arrayTosort sortByObject:(NSString*)sortKey{
NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:YES];
[arrayTosort sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];
return arrayTosort;
 }

or even you can sort it in ascending or descending order by setting it YES/NO

Upvotes: 1

Niko
Niko

Reputation: 2543

Here is an example. Imagines you have an array of dictionnaries. Ecah dictionnary have 2 keys "name" & "dateOfBirth". You can sort your array by "name" like this :

//
// Sort array by name
//
NSSortDescriptor *Sorter = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:Sorter]];
[Sorter release];

Note that myArray is a NSMutableArray.

Upvotes: 7

Alex Reynolds
Alex Reynolds

Reputation: 96927

Read the Sorting with Sort Descriptors section of Apple's Collections Programming Topics.

The example in this section covers sorting an array of dictionary objects by their keys.

Upvotes: 4

Related Questions