排序NSDate [英] Sorting NSDates
本文介绍了排序NSDate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的程序中有几个字典,我将所有这些字典放在一个数组中,我想对这些日期进行排序,因此字典应该交换其位置,下面显示的是我正在使用的代码,但我没有对它进行排序.请帮助我解决此问题
i have several dictionaries in my program,i have put all those dictionaries in an array i want to sort those dates accordingly dictionary should exchange its position,below shown is the code i am using,but i am not getting it sorted.Please help me to fix this issue
** NSLog(@在排序之前-%d",[allDataArray计数]);
**NSLog(@"before sorting---%d",[allDataArray count]);
for(int i=0;i<[allDataArray count]-1;i++){
NSString *dateStr1=[[allDataArray objectAtIndex:i]objectForKey:@"Date"];
for(int j=i+1;j<[allDataArray count];j++){
NSString *dateStr2=[[allDataArray objectAtIndex:j]objectForKey:@"Date"];
if(([(NSDate*)dateStr1 compare:(NSDate*)dateStr2]==NSOrderedAscending)
||([(NSDate*)dateStr1 compare:(NSDate*)dateStr2]==NSOrderedSame))
[allDataArray replaceObjectAtIndex:i withObject:[allDataArray objectAtIndex:j]];
}
}
NSLog(@"afterSorting-numbers--%@",allDataArray);**
推荐答案
好像您是在这里重新发明轮子(排序在几十年前就已经解决了),请改为执行此操作:
Looks like you're reinventing the wheel here (sorting has been solves decades ago), do this instead:
NSArray *allDataArray = ...;
NSArray *sortedAllDataArray = [allDataArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"Date" ascending:YES]]];
或者这个:
NSArray *allDataArray = ...;
NSArray *sortedAllDataArray = [allDataArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *dict1, NSDictionary *dict2) {
return [[dict1 objectForKey:@"Date"] compare:[dict2 objectForKey:@"Date"]];
}]
这篇关于排序NSDate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文