如何在NSDate中对NSMutableDictionary中的“key”和“value”进行排序?

时间:2013-05-15 14:40:17

标签: ios objective-c sorting nsdate nsmutabledictionary

我有NSMutableDictionary,其中包含联系人姓名(NSString)和日期(NSDate)。名称是keys如何按创建日期对名称进行排序?

我假设我必须创建NSMutableArray日期,然后以某种方式对其进行排序。 但是如何获取日期的名称?我如何对NSDate进行排序?

谢谢!

2 个答案:

答案 0 :(得分:4)

如果dict包含日期格式的NSString,请尝试以下代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"your date format"];

NSArray *sortedKeys = [yourDictionary  keysSortedByValueUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2)
{
    NSDate *date1 = [dateFormatter dateFromString:obj1];
    NSDate *date2 = [dateFormatter dateFromString:obj2];
    return [date1 compare:date2];
}];

sortedKeys将包含已排序的名称。

如果字典包含实际的NSDate对象,则:

NSArray *sortedKeys = [yourDictionary  keysSortedByValueUsingComparator:^NSComparisonResult(NSDate *obj1, NSDate *obj2)
{
   return [obj1 compare:obj2];
}];

答案 1 :(得分:0)

您可以使用[myDictionary keysSortedByValueUsingSelector:@selector(compare:)];