Whew... what a title. So I have a NSMutableArray that is assigned data retrieved from an API call. I don't have control of the structure of the API call response, and I would like to sort the array in it's provided format. (other solutions welcome, of course)
This is a silly example (to keep things simple), but the array I'm wanting to sort can be represented something like this:
myObjects = array( 0 => object( name => @"Jack", favoriteNumbers => object( numbers => array( 0 => 7, 1 => 11, 2 => 6 ) ) ), 1 => object( name => @"Jill", favoriteNumbers => object( numbers => array( 0 => 1, 1 => 2, 2 => 3 ) ) ), 3 => object( name => @"Sally", favoriteNumbers => object( numbers => array( 0 => 68, 1 => 103, 2 => 99 ) ) ) )
I know I can simply sort by name with something like:
NSSortDescriptor *sortDescriptor; sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO] autorelease]; NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSArray *sortByDurationArray = [myObjects sortedArrayUsingDescriptors:sortDescriptors]; // the variable "myObjects" holds the array representation from above
But how would I sort the array by each persons 1st favorite number?
The desired result would sort the array in the following order: Jill, Jack, Sally; since Jill's 1st favorite number is 1, Jack's is 7 and Sally's is 68.