如何在iPhone中按降序对数组进行排序

时间:2013-12-17 07:31:17

标签: ios iphone objective-c nsarray nssortdescriptor

我正在尝试按降序对数组进行排序,我可以按升序对数组进行排序,这是我的代码按升序排序,

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"year" ascending:NO];
NSArray * descriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
sortedArray = [array sortedArrayUsingDescriptors:descriptors];

dictionaryWithSortedYears = [[NSMutableDictionary alloc] init];
NSString *tempDateKey = nil;

for (TreeXmlDetails *list in sortedArray)
{
    id obj = [dictionaryWithSortedYears objectForKey:list.year];

    if(!obj)
    {
        if(tempDateKey == nil)
        {
            arrayFromList = [[NSMutableArray alloc] init];
            tempDateKey = list.year;
        }
    }

    if([list.year isEqualToString:tempDateKey])
        [arrayFromList addObject:list];
    else
    {
        [dictionaryWithSortedYears setObject:arrayFromList forKey:tempDateKey];
        tempDateKey = nil;
        arrayFromList = nil;
        arrayFromList = [[NSMutableArray alloc] init];
        tempDateKey = list.year;
        [arrayFromList addObject:list];
    }
}

[dictionaryWithSortedYears setObject:arrayFromList forKey:tempDateKey];

NSArray *arr = [dictionaryWithSortedYears allKeys];

sortedKeys = [[NSArray alloc] initWithArray:[arr sortedArrayUsingSelector:@selector(compare:)]];

但是,我想以降序数组排序数组,请帮助我。 谢谢你。

2 个答案:

答案 0 :(得分:0)

使用以下内容:

[yourArrayToBeSorted sortUsingComparator:^NSComparisonResult(id obj1, id obj2){
    return [(NSDate *)obj2 compare:(NSDate *)obj1];} ];

答案 1 :(得分:0)

来自文档:

  

NSSortDescriptor的实例描述了订购对象的基础   通过指定用于比较对象的属性,该方法   用于比较属性,以及是否应该进行比较   上升或下降。 NSSortDescriptor的实例是不可变的。

     

通过指定密钥来构造NSSortDescriptor的实例   要比较的属性的路径,排序的顺序(升序   或者降序),以及(可选)用于执行的选择器   比较。

构造函数: 的 initWithKey:升序:

  

返回使用给定属性初始化的NSSortDescriptor对象   键路径和排序顺序,以及默认比较选择器。    - (id)initWithKey:(NSString *)keyPath ascending:(BOOL)ascending

指定顺序的参数:

  如果接收者按升序指定排序,则

升序为YES,   否则没有。

这些苹果文档会一步一步地指导您如何对数组进行排序:

https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/SortDescriptors/Articles/Creating.html