排序NSDate [英] Sorting NSDates

查看:57
本文介绍了排序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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆