В данном примере будем сортировать массив, состоящий из словарей, по любому ключу.

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);
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *