localizedStandardCompare: ошибка сортировки при сортировке времен, в которых отсутствует конечный ноль - PullRequest
0 голосов
/ 14 февраля 2012

Я сортирую массивы таких времен:

00:26.39    
00:23.49
00:26.9

Когда я пытаюсь отсортировать по возрастанию, используя localizedStandardCompare:, результаты получаются так:

00:23.49
00:26.9
00:26.39    

Я подозреваю, что ошибка связана с отсутствием конечного нуля на 00:26.9 времени, но мне нужно, чтобы они сортировались правильно, даже если данные были введены, как показано.

Есть ли другой поисковый селектор, который я мог бы использовать, который бы справился с этим правильно? Или какое-то другое простое решение, кроме прокрутки собственного сортировщика?

Спасибо.

1 Ответ

0 голосов
/ 14 февраля 2012

Вы должны изменить каждое значение на число с плавающей запятой, чем на строку, чтобы избежать этого типа условия, попробуйте следующее:

NSArray *arrOne = [[NSArray alloc] initWithObjects:[NSString stringWithFormat:@"%f",[@"26.39" floatValue]],[NSString stringWithFormat:@"%f",[@"26.49" floatValue]],[NSString stringWithFormat:@"%f",[@"26.9" floatValue]],nil];

    NSLog(@"00:26.39 < 00:26.49  %d",[[arrOne objectAtIndex:0] localizedStandardCompare:[arrOne objectAtIndex:1]]);

    NSLog(@"00:26.49 > 00:26.39 %d",[[arrOne objectAtIndex:1]  localizedStandardCompare:[arrOne objectAtIndex:0]]);

    NSLog(@"00:26.49 < 00:26.9 %d",[[arrOne objectAtIndex:1]  localizedStandardCompare:[arrOne objectAtIndex:2]]);

    NSLog(@"00:26.49 == 00:26.49 %d",[[arrOne objectAtIndex:1]  localizedStandardCompare:[arrOne objectAtIndex:1]]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...