У меня есть NSMutableDictionary
со строковыми ключами, и каждый ключ имеет свой собственный массив. Я хочу пересобрать словарь с ключом по алфавиту. Как я могу это сделать?
Как я могу сортировать NSMutableDictionary со значением ключа?
Ответ 1
Словарь по определению не сортируется.
Для итерации по клавишам в определенном порядке вы можете отсортировать массив, содержащий ключи словаря.
NSArray *keys = [theDictionary allKeys];
NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compareMethod:)];
Существует несколько других методов sorted...
, например. сортировка с помощью NSComparator
. Посмотрите здесь.
Ответ 2
Используйте этот
NSArray *myKeys = [Dict allKeys];
NSArray *sortedKeys = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSMutableArray *sortedValues = [[[NSMutableArray alloc] init] autorelease];
for(id key in sortedKeys) {
id object = [Dict objectForKey:key];
[sortedValues addObject:object];
}
Ответ 3
NSDictionary *yourDictionary;
NSArray *sortedKeys = [yourDictionary.allKeys sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];
NSArray *sortedValues = [yourDictionary objectsForKeys:sortedKeys notFoundMarker:@""];