将NSDictionary键排序为NSDate

时间:2012-03-02 07:35:49

标签: ios sorting nsdate nsdictionary

我正在使用最新的SDK和XCode 4.2开发iOS 4应用程序。

我有NSMutableDictionary,其中NSDateNSMutableString

当我填写 NSMutableDictionary 时,我想对其键进行排序,但我不知道该怎么做。

我想要1月份的日期,然后是2月份等等。

NSDate键格式为 dd / mm / yyyy

如果NSMutableDictionary包含所有键和值,我如何对这些键进行排序? (我不会添加更多)。

2 个答案:

答案 0 :(得分:8)

这是一个非常标准的事情,但是,你可能不会排序一个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
}

答案 1 :(得分:7)

试试这段代码:

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

但请注意,您无法对字典进行排序,因为它基于键值查找,而不是索引查找。