一旦数字大于10,Tableview就不会排序

时间:2019-03-15 10:15:38

标签: ios swift tableview

我正在使用以下代码对tableview进行排序:

list.sort() { $0.points > $1.points }

一切正常(一点点) 如果我使用这种排序方法,它将对数字(也称为点)进行一直到10的排序。但是,一旦数字超过10,列表就不再排序。而且我不知道如何解决这个问题。

低于10的结果:

1

结果高于10:

2

我猜是因为“ 10”而将其放置在原位,如果我使用“ 60”,它将被放置在第二或第三位置。那么,我该如何解决呢?我会非常感谢。

1 个答案:

答案 0 :(得分:7)

这是比较字符串时的正常行为。字符串不是数字。

方法localizedStandardCompare就像Finder中那样进行比较,并正确处理数字字符串

list.sort() { $0.points.localizedStandardCompare($1.points) == .orderedDescending }

或者用compare选项.numeric

list.sort() { $0.points.compare($1.points, options: .numeric) == .orderedDescending }