Если у вас есть массив объектов (может применяться к словарям), каждый объект (A) содержит имя, фамилию, возраст и вы хотите отсортировать по возрасту:
NSMutableArray * array = [NSMutableArray array];
[array addObject:[A aWithFirstName:@"John"
lastName:@"Blay"
age:[NSNumber numberWithInt:30]]];
[array addObject:[A aWithFirstName:@"John"
lastName:@"Albort"
age:[NSNumber numberWithInt:15]]];
[array addObject:[A aWithFirstName:@"Axel"
lastName:@"Albort"
age:[NSNumber numberWithInt:40]]];
[array addObject:[A aWithFirstName:@"Peter"
lastName:@"Albort"
age:[NSNumber numberWithInt:20]]];
[array addObject:[A aWithFirstName:@"Kevin"
lastName:@"Klein"
age:[NSNumber numberWithInt:20]]];
// create sort descriptor
NSSortDescriptor * ageDescriptor =
[[[NSSortDescriptor alloc] initWithKey:@"age"
ascending:YES] autorelease];
NSArray * descriptors;
NSArray * sortedArray;
// array of sort descriptor - could use multiple descriptors for sorting
descriptors = [NSArray arrayWithObjects:ageDescriptor, nil];
// sort data
sortedArray = [array sortedArrayUsingDescriptors:descriptors];
// print out sorted data
id obj;
NSEnumerator * enumerator;
enumerator = [sortedArray objectEnumerator];
while ((obj = [enumerator nextObject])) NSLog(@"%@", obj);
Вывод (отсортировано по возрасту):
2010-01-09 22:14:38.391 x[38860:903] Albort, John; age 15
2010-01-09 22:14:38.391 x[38860:903] Albort, Peter; age 20
2010-01-09 22:14:38.392 x[38860:903] Klein, Kevin; age 20
2010-01-09 22:14:38.393 x[38860:903] Blay, John; age 30
2010-01-09 22:14:38.393 x[38860:903] Albort, Axel; age 40
Это работает так же, если вместо моего класса А вы используете NSDictonary.