1

次の値を含む NSSet があります。

{0.5、0.01、0.05、5、1、0.25、25、10、100}

NSSortDescriptor を使用して、このセットの内容を低い数値から高い数値の配列に並べ替えたいと考えています。もちろん、以下をレンダリングしないように...:

{0.01、0.05、0.25、0.5、1、10、100、25、5}

...NSSortDescriptor インスタンスの @selector(localizedStandardCompare:) 属性を使用する必要があります。

以下は私のコードです:

    NSMutableArray *valuesArray = [[NSMutableArray alloc] initWithArray:[valuesSet allObjects]];

    NSSortDescriptor *sortedOrderSpecifier = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES selector:@selector(localizedStandardCompare:)];

    [valuesArray sortUsingDescriptors:[NSArray arrayWithObject:sortedOrderSpecifier]];

    return valuesArray;

しかし - ここでの出力も間違っていますが、かろうじてです! それは奇妙だ:

{ 0.01、0.5、0.05、0.25、1、5、10、25、100 }

上で太字で示したように、0.5 が正しく配置されていないことがわかりますが、それ以外はすべて問題ありません。では、この値が特別な理由は何ですか? localizedStandardCompare を壊すのはなぜでしょうか?

ありがとう!

4

0 に答える 0