Как отсортировать числа в массиве от низкого к высокому - PullRequest
4 голосов
/ 29 декабря 2010

Я пытаюсь отсортировать массив цен от низкого до высокого.У меня это работает, но не так, как я хочу.Короче говоря, сортировщик расставляет числа по порядку так: 100 10900 200 290

вместо сортировки вот так

100 200 290 10900

вот мой код IЯ делаю это с.

-(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 ]

10 голосов
/ 29 декабря 2010

Создайте дескриптор сортировки следующим образом:

sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"ListPrice"
                                               ascending:YES
                                              comparator:^(id obj1, id obj2) {
    return [obj1 compare:obj2 options:NSNumericSearch];
}];
0 голосов
/ 29 декабря 2010

Сначала вам нужно конвертировать NSString в NSNumbers.Посмотрите документацию для NSNumberFormatter и метод экземпляра numberFromString.

...