0

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

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

谢谢!

4

2 回答 2

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];
}];
于 2013-05-15T14:48:37.843 回答
0

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

于 2013-05-15T14:46:30.337 回答