Ios “如何排序”;“关键”;及;“价值”;按NSDate在NSMutableDictionary中?

Ios “如何排序”;“关键”;及;“价值”;按NSDate在NSMutableDictionary中?,ios,objective-c,sorting,nsdate,nsmutabledictionary,Ios,Objective C,Sorting,Nsdate,Nsmutabledictionary,我有一个NSMutableDictionary,其中包含联系人姓名(NSString)和日期(NSDate)。这些名称是键如何按创建日期对名称进行排序? 我假设我必须创建日期的NSMutableArray,然后以某种方式对其进行排序那么我如何获得日期的名称呢?我如何对日期进行排序 谢谢 您可以使用[myDictionary KeysSortedByValue UsingSelector:@selector(compare:)]您可以使用[myDictionary KeysSortedByValu

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

我假设我必须创建日期的
NSMutableArray
,然后以某种方式对其进行排序那么我如何获得日期的名称呢?我如何对日期进行排序


谢谢

您可以使用
[myDictionary KeysSortedByValue UsingSelector:@selector(compare:)]

您可以使用
[myDictionary KeysSortedByValue UsingSelector:@selector(compare:)]

如果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];
}];

如果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];
}];

也许这会有帮助:你不能给字典排序。您必须将内容复制到NSArray或类似的文件中才能对其进行排序。将提供解决方案。也许这会有所帮助:您无法对NSDictionary进行排序。您必须将内容复制到NSArray或类似的文件中才能对其进行排序。将提供解决方案。第二个代码部分成功了!万分感谢!如果找到答案,请将其标记为已接受;)Aaa,漂亮的否决票,没有解释否决票原因的评论。谢谢第二部分@ZachLucas!第二段代码成功了!万分感谢!如果找到答案,请将其标记为已接受;)Aaa,漂亮的否决票,没有解释否决票原因的评论。谢谢第二部分@ZachLucas!