2015-03-09 2 views
0

У меня есть следующие NSDictionary со следующей структурой данных:Match NSDictionary Key Value Pairs

Food Count (values) - Food Name (key) 

Я сортирую, что рассчитывать еда NSDictionary как так:

NSArray *sortedFood = [[detailDictionary allValues] sortedArrayUsingComparator:^(id obj1, id obj2) { 
    if ([obj1 intValue] < [obj2 intValue]) 
     return (NSComparisonResult)NSOrderedDescending; 
    if ([obj1 intValue] > [obj2 intValue]) 
     return (NSComparisonResult)NSOrderedAscending; 
    return (NSComparisonResult)NSOrderedSame; 
}]; 

Он сортируется это следующим образом

100 
98 
50 
30 
etc. 

Я пытаюсь использовать этот новый массив sortedFood, чтобы показать только верхнее значение 5, ke y пар для пищи.

Например, если Apple является наименованием пищевого продукта, которое имеет значение 100, оно будет выглядеть первым.

Пока у меня есть петля, но больше ничего.

for (int i = 0; i <= 5; i++) { 
} 

Не уверен, что еще нужно делать. Я думаю, что это сложнее, потому что весь словарь не сортируется так же, как новый массив, но я могу ошибаться.

+0

Я думаю, что ответ на этот вопрос поможет вам http://stackoverflow.com/questions/17257582/sorting-a-nsdictionary-how-does-it-work – Popeye

ответ

1

Я думаю, вы должны попробовать -[keysSortedByValueUsingSelector:] в NSDictionary, он сортируется по значению и получает ключевые результаты.

Смежные вопросы