我正在使用最新的SDK和XCode 4.2开发iOS 4应用程序。
我有NSMutableDictionary
,其中键为NSDate
,值为NSMutableString
。
当我填写 NSMutableDictionary 时,我想对其键进行排序,但我不知道该怎么做。
我想要1月份的日期,然后是2月份等等。
NSDate
键格式为 dd / mm / yyyy 。
如果NSMutableDictionary
包含所有键和值,我如何对这些键进行排序? (我不会添加更多)。
答案 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:)];
但请注意,您无法对字典进行排序,因为它基于键值查找,而不是索引查找。