我已经生成了一个字符串数组,每个字符串都是来自NSDictionary的日期(从plist文件解析),问题是在创建数组时,NSDictionary的年份是随机顺序。
我的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:_country ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
tableData = [[NSMutableArray alloc] init];
for (id key in dict) {
for (NSString *date in [dict objectForKey:key]){
NSString *baseString = @"";
baseString = [baseString stringByAppendingFormat:@"%@ %@", date, key];
[tableData addObject:baseString];
}
}
所以上面输出的字符串如:December 05 2014
我需要的是找到一种方法来对这个数组进行排序,以便最早的日期是第一个。
答案 0 :(得分:-1)
NSArray类有一个-sortedArrayUsingComparator:方法,您可以使用它来对其进行排序。请参阅参考here。
您需要根据您使用的日期格式提供合适的比较器作为块。可能使用NSScanner或NSDateFormatter ......
NSArray *sortedArray = [tableData sortedArrayUsingComparator: ^(NSString *str1, NSString *str2) {
if (/* str1 goes before str2 */) {
return NSOrderedDescending;
}
else if (/* str1 goes after str2 */) {
return NSOrderedAscending;
}
else {
return NSOrderedSame;
}
}];