Reputation: 2894
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
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
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
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