NSSortDescriptor对双重价值表现奇怪

时间:2013-07-23 21:58:25

标签: ios objective-c sorting nssortdescriptor

我有一个包含以下值的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没有正确定位,但其他一切都很好。那么是什么让这个价值如此特殊,为什么它打破了本地化的标准比较?

谢谢!

0 个答案:

没有答案