В данном примере будем сортировать массив, состоящий из словарей, по любому ключу.
NSString *FIO = @"fio";
NSString *FACULTY = @"faculty";
NSString *AGE = @"age";
NSMutableArray *array = [NSMutableArray array];
NSDictionary *dictionary;
// создаём словари и кладем их в массив, который будем сортировать
dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"Ivanov", FIO,
@"KSIS", FACULTY,
[NSNumber numberWithInt:20], AGE,
nil];
[array addObject:dictionary];
dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"Petrov", FIO,
@"FRE", FACULTY,
[NSNumber numberWithInt:18], AGE,
nil];
[array addObject:dictionary];
dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"Sidorov", FIO,
@"FITU", FACULTY,
[NSNumber numberWithInt:21], AGE,
nil];
[array addObject:dictionary];
// создаем объект класса NSSortDescriptor, который будет использоваться для сортировки
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:FACULTY ascending:YES] autorelease];
// непосредственно сортируем массив, используя созданный sortDesctiptor
NSArray *sortedArray = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]];
// сейчас массив уже отсортирован, в чем мы можем убедиться используя следующий код
for (NSDictionary *dict in sortedArray) {
NSLog(@"%@", dict);
}
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: