如何将数组中的数字从低到高排序

时间:2010-12-28 23:32:52

标签: iphone sdk iphone-sdk-4.1

我试图将一系列价格从低到高排序。我有它的工作,但不是我想要的方式。长话短说,分拣机按顺序排列数字: 100 10900 200 290

而不是像这样排序

100 200 290 10900

这是我正在使用的代码。

-(void)filterPriceLowHigh {
    NSSortDescriptor *sortDescriptor;
    sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"ListPrice"
        ascending:YES] autorelease];
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    NSArray *sortedArray;
    sortedArray = [app.vehiclesArrayToDisplay
        sortedArrayUsingDescriptors:sortDescriptors];
    [app.vehiclesArrayToDisplay removeAllObjects];
    [app.vehiclesArrayToDisplay addObjectsFromArray:sortedArray];
}

有人可以告诉我这里需要做什么吗? 提前谢谢。

2 个答案:

答案 0 :(得分:10)

像这样创建排序描述符:

sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"ListPrice"
                                               ascending:YES
                                              comparator:^(id obj1, id obj2) {
    return [obj1 compare:obj2 options:NSNumericSearch];
}];

答案 1 :(得分:0)

您需要先将NSString转换为NSNumbers。查看NSNumberFormatter和实例方法numberFromString的文档。