我想根据日期和月份值对数组进行排序。我正在使用此代码
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc]initWithKey:@"self" ascending:YES];
NSArray *descriptors=[NSArray arrayWithObject:descriptor];
revereseorder=[dateAarray sortedArrayUsingDescriptors:descriptors];
NSLog(@"date order %@",revereseorder);
我得到如下响应:
date order (
"01-11-2014",
"01-12-2014",
"02-11-2014",
"02-12-2014",
"03-11-2014",
"03-12-2014",
"04-11-2014",
"04-12-2014",
"05-11-2014",
"05-12-2014",
"06-11-2014",
"06-12-2014",
"07-11-2014",
"07-12-2014",
"08-11-2014",
"08-12-2014",
"09-11-2014",
"09-12-2014",
"10-11-2014",
"10-12-2014",
"11-11-2014",
"11-12-2014",
"12-11-2014",
"12-12-2014",
"13-11-2014",
"13-12-2014",
"14-11-2014",
"15-11-2014",
"16-11-2014",
"17-11-2014",
"18-11-2014",
"19-11-2014",
"20-11-2014"
)
但是我需要根据当月的降序显示响应的当前日期。请问我如何解决?谢谢@
最佳答案
如果要对字符串进行正确排序,则需要将其转换为实际的NSDate对象。
您可以使用比较器功能像这样对它们进行排序...
NSArray *dateStringArray = //your array...
NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.dateFormat = @"dd-MM-yyyy";
NSArray *sortedArray = [dateStringArray sortedArrayUsingComparator:^(NSString *string1, NSString *string2) {
NSDate *date1 = [dateFormatter dateFromString:string1];
NSDate *date2 = [dateFormatter dateFromString:string2];
return [date1 compare:date2];
}];
如果要降序,只需将比较器的最后一行更改为...
return [date2 compare:date1];
关于ios - 对数组进行排序,其中包含日期,月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483834/