Sorting 如何对NSDate数组进行排序(在NSMUTABLEARRY中)?
有人能告诉我如何按照实际日期对NSDate的数组(NSMutableArray)进行排序吗Sorting 如何对NSDate数组进行排序(在NSMUTABLEARRY中)?,sorting,nsarray,nsdate,Sorting,Nsarray,Nsdate,有人能告诉我如何按照实际日期对NSDate的数组(NSMutableArray)进行排序吗 谢谢 现在,您只需根据您的需求修改部分代码即可 - (NSArray *)sortedWeightEntriesByWeightDate:(NSArray *)unsortedArray { NSMutableArray *tempArray = [NSMutableArray array]; NSMutableArray *sortedArray = [NSMutableArray a
谢谢 现在,您只需根据您的需求修改部分代码即可
- (NSArray *)sortedWeightEntriesByWeightDate:(NSArray *)unsortedArray {
NSMutableArray *tempArray = [NSMutableArray array];
NSMutableArray *sortedArray = [NSMutableArray arrayWithCapacity:0];
@try {
for(int i = 0; i < [unsortedArray count];i++) {
NSDateFormatter *df = [[NSDateFormatter alloc]init];
MyDataModal *entry = [unsortedArray objectAtIndex:i];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [df dateFromString:entry.weightDate];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
if(date) {
[dict setObject:entry forKey:@"entity"];
[dict setObject:date forKey:@"date"];
[tempArray addObject:dict];
}
[df release];
}
NSInteger counter = [tempArray count];
NSDate *compareDate;
NSInteger index;
for(int i = 0 ; i < counter; i++) {
index = i;
compareDate = [[tempArray objectAtIndex:i] valueForKey:@"date"];
NSDate *compareDateSecond;
for(int j = i+1 ; j < counter; j++) {
compareDateSecond=[[tempArray objectAtIndex:j] valueForKey:@"date"];
NSComparisonResult result = [compareDate compare:compareDateSecond];
if(result == NSOrderedDescending) {
compareDate = compareDateSecond;
index=j;
}
}
if(i!=index)
[tempArray exchangeObjectAtIndex:i withObjectAtIndex:index];
}
NSInteger counterIndex = [tempArray count];
for(int i = 0; i < counterIndex ; i++) {
[sortedArray addObject:[[tempArray objectAtIndex:i] valueForKey:@"entity"]];
}
}
@catch (NSException * e) {
NSLog(@"An exception occured while sorting weight entries by date");
}
@finally {
return [NSArray arrayWithArray:sortedArray];
}
}
-(NSArray*)按权重排序的第十八个NTRIES日期:(NSArray*)未排序的数据{
NSMutableArray*tempArray=[NSMutableArray];
NSMutableArray*sortedArray=[NSMutableArray阵列容量:0];
@试一试{
对于(int i=0;i<[UnsortedDarray count];i++){
NSDateFormatter*df=[[NSDateFormatter alloc]init];
MyDataModal*条目=[unsortedArray objectAtIndex:i];
[df setDateFormat:@“yyyy-MM-dd”];
NSDate*date=[df dateFromString:entry.weightDate];
NSMutableDictionary*dict=[NSMutableDictionary];
如果(日期){
[dict setObject:entry forKey:@“entity”];
[dict setObject:date forKey:@“date”];
[tempArray addObject:dict];
}
[df释放];
}
NSInteger计数器=[tempArray count];
NSDate*比较;
NSInteger指数;
对于(int i=0;i
我相信您希望使用类似于-并传入@selector(比较:)
的东西。例如,假设您有一个名为*dateArray*:
[dateArray sortUsingSelector:@selector(compare:)];
谢谢,这个方法很有用,但是对于compare:selector,只有一个参数,类似于compare:(NSDate*)other,但是我需要另一个日期来比较。