我有一个名为LogDateMsg
的NSMutableDictionary。在这个字典中,我将NSDate对象存储为键类型为long的值。
我需要根据它们的日期值按降序对键进行排序。我正在使用以下代码
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"d.M.yyyy kk:mm:ss"];
NSArray *currKeys = [LogDateMsg keysSortedByValueUsingComparator:^NSComparisonResult(id a, id b) {
NSString* first = (NSString*)a;
NSString* second = (NSString*)b;
NSDate* d1=[formatter dateFromString:first];
NSDate* d2=[formatter dateFromString:second];
return [d2 compare:d1];
}];
但是,以上并没有给我所需的结果。
上述代码是否有问题或是否有更好的方法来执行我想要的内容?
提前致谢!
答案 0 :(得分:-1)
NSArray *keys = @[@1189641421, @1350490027, @1102520059, @1681692777];
NSArray *values = @[@"Mon Dec 14 11:34:10 2015", @"Mon Dec 14 11:34:11 2015", @"Mon Dec 14 11:34:12 2015", @"Mon Dec 14 11:34:13 2015"];
NSMutableDictionary *d = [[NSMutableDictionary alloc] initWithObjects:values forKeys:keys];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE MMM dd hh:mm:ss yyyy"];
currKeys = [d keysSortedByValueUsingComparator:^NSComparisonResult(id a, id b) {
NSDate *d1 =[formatter dateFromString:(NSString*)a];
NSDate *d2 =[formatter dateFromString:(NSString*)b];
return [d2 compare:d1];
}];
NSLog_SM(@"%@", currKeys);