Как отсортировать массив по числовым значениям?

У меня есть приложение iOS с NSMutableArray, которое отображается в UITableView. Массив обычно содержит только числа (поскольку это основная цель), но иногда содержит некоторые буквы. Последнее, что происходит с массивом перед отображением, — это сортировка по алфавиту с использованием [customerArray sortUsingSelector:@selector(compare:)];. Однако, когда я запускаю приложение, если массив содержит числа с разным количеством цифр (например: 0–20), 10 сортируются сразу после 1, а не после 9. Есть ли способ правильно отсортировать числа по численная величина? Я с удовольствием предоставлю дополнительную информацию, код или скриншоты, если это необходимо. Любая помощь очень ценится.


person JustMe    schedule 04.08.2016    source источник
comment
Покажите больше кода, пожалуйста.   -  person Tony    schedule 04.08.2016
comment
@TonyHan, есть ли какой-нибудь код, который вы хотели бы увидеть? Я не совсем уверен, что добавить.   -  person JustMe    schedule 04.08.2016
comment
@TonyHan @selector(compare:) просто сравнивает строки и упорядочивает их. Здесь есть объяснение   -  person JustMe    schedule 04.08.2016


Ответы (1)


Это размышление о моем коде может помочь вам:

NSArray *arr = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20"];

NSMutableArray *arrM = [NSMutableArray arrayWithArray:arr];

NSArray *arr2= [arrM sortedArrayUsingComparator:^(id objA,id objB){
        return (NSInteger)([objA integerValue] > [objB integerValue]);//ascending
        //return (NSInteger)([objA integerValue] < [objB integerValue]);//descending
    }];
 NSLog(@"%@",arr2);

Надеюсь, это поможет вам! хахахахха~~~

person CJiYI    schedule 04.08.2016