NSSortDescriptor - 按intValue排序,最后为0

时间:2017-02-03 10:26:05

标签: objective-c nssortdescriptor

我想基于字段的intValue使用NSSortDescriptor对数组进行排序。这完全可以使用以下代码:

        descriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"lowerPrice.floatValue" ascending:YES];

唯一的问题是这个字段无论如何都包含一个值,所以有些值为0.但是,在我的排名中,0应该是绝对的最后一个。基本上,0.1应该是第一个,一直到让50说,然后是0' s。但是按升序使用floatValue,我显然首先得到了0。

解决这个问题最优雅,最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

使用sortedArrayUsingComparator:,它使用一个被调用的块来比较元素对并返回它们的顺序。在块中第一次测试零并返回适当的排序(两个零相等,零大于其他任何东西),如果没有基于真实数字排序的零返回。

HTH