2012-02-14 13 views
0

が不足している時間をソートする場合、ソート・エラー私はこのような時代の配列をソートしています:localizedStandardCompare:末尾のゼロ

00:26.39  
00:23.49 
00:26.9 

私はlocalizedStandardCompare:を使用して昇順にソートしようとすると、しかし、結果は次のように判明します:

00:23.49 
00:26.9 
00:26.39  

私はエラーが00:26.9時間に末尾のゼロの有無とは何かを持っているが、これらが示すように、データが入力された場合でも、適切にソートするために私が必要と思います。

これを正しく処理するために使用できる別の検索セレクタがありますか?私自身の選別業者とは別に、他の簡単な解決策がありますか?

ありがとうございました。

答えて

0

あなたはこれを試してみてくださいこのタイプの条件を避けるために、文字列よりも、フロートにそれぞれ、すべての値を変更するにはすべきである:

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]]); 
+0

私はこれが私の目的のために働くかもしれない認識しながら大きな配列をソートする場合、それは非常に非効率です値の – Murdock

+0

特定のケースのパフォーマンスは問題ではないので、私はこの回答を受け入れています。私の最終的なソートされた配列は、スローダウンが目立たないほど十分に小さいです。このような重い文字列の操作は、大規模な配列に対しては効率的ではないが、将来これを読んでいる人のためのメモ... – Murdock

+1

だから、私はこの点について考え続けています。 1。 – kulss

関連する問題