【发布时间】:2020-01-09 09:33:52
【问题描述】:
我有以下字符串数组。
NSArray *array = [NSArray arrayWithObject:@"042018, 052018, 122018, 012019, 022019, 032019"];
我想按照 MonthYear 组合的顺序对这个数组进行排序,即 032019 在 122018 之前。
结果应该给出
(
032019,
022019,
012019,
122018,
052018,
042018
)
我尝试了这段代码,但没有给出令人满意的结果。请帮忙。
NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init];
[fmtDate setDateFormat:@"mmyyyy"];
NSComparator compareDates = ^(id string1, id string2)
{
NSDate *date1 = [fmtDate dateFromString:string1];
NSDate *date2 = [fmtDate dateFromString:string2];
return [date1 compare:date2];
};
NSArray *sortedYearKeys = [[dicSection allKeys] sortedArrayUsingComparator:compareDates];
NSLog(@"array:%@",sortedYearKeys);
【问题讨论】:
-
return [date2 compare:date1];代替? -
考虑使用可直接排序的
yyyyMM格式。 -
我试过你的代码,如果我返回
[date2 compare:date1],就像拉姆说的那样,那么它就可以了。
标签: objective-c sorting nsarray