Сортировка массива NSDictionary в приложении iphone - PullRequest
1 голос
/ 17 июля 2011

Мне нужно отсортировать следующие объекты массива в порядке возрастания или убывания.

NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3",
                                          @"key4", @"key5", nil];
NSArray *objects = [NSArray arrayWithObjects:@"0", @"2", @"1",
                                             @"5", @"0", nil];
NSDictionary*  dictionary = [NSDictionary dictionaryWithObjects:objects
                                                        forKeys:keys];
for (id key in [dictionary allKeys]) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}

Мой вывод должен быть таким:

key: key4, value:5
key: key2, value:2
key: key3, value:1
key: key1, value:0
key: key5, value:0

1 Ответ

1 голос
/ 17 июля 2011

Кажется, вы хотите отсортировать по вашим значениям. Пока NSDictionary не отсортирован, вы можете получить массив ключей, отсортированных по своему вкусу. Просто взгляните на

- (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator
- (NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr

Затем переберите ключи в этом массиве и извлеките соответствующее значение из словаря.

...