Сортировать ключи NSDictionary как NSDate - PullRequest
4 голосов
/ 02 марта 2012

Я разрабатываю приложение для iOS 4 с последним SDK и XCode 4.2.

У меня есть NSMutableDictionary, где клавиши имеют значения NSDate и NSMutableString.

Когда я заполнил NSMutableDictionary Я хочу отсортировать ключи, но я не знаю, как я могу это сделать.

Я хочудаты первого января, затем февраль и т. д.

Формат ключа NSDate: дд / мм / гггг .

Как можно отсортировать эти ключи, когда NSMutableDictionary имеет все свои ключи и значения?(Я не собираюсь добавлять больше).

Ответы [ 2 ]

8 голосов
/ 02 марта 2012

Это довольно стандартная вещь, однако, вы не можете сортировать NSDictionary - вы можете сортировать массив, полученный из словаря.

Вот что я бы сделал:

// get all keys into array
NSArray * keys = [your_dictionary allKeys];

// sort it
NSArray * sorted_keys = [keys sortedArrayUsingSelector:@selector(compare:)];

// now, access the values in order
for (NSDate * key in sorted_keys)
{
  // get value
  NSMutableString * your_value = [your_dictionary valueForKey: key];

  // perform operations
}
7 голосов
/ 02 марта 2012

Попробуйте этот код:

NSArray *sortedArray = [[myDict allKeys] sortedArrayUsingSelector:@selector(compare:)];

Но учтите, что вы не можете сортировать словарь, так как он основан на поиске по значению ключа, а не на поиске по индексу.

...