我正在使用以下代码对tableview进行排序:
list.sort() { $0.points > $1.points }
一切正常(有点)如果我使用这种排序方法,它将数字(也称为点数)一直排序到10.但是一旦数字大于10,列表就不再被排序了。我不知道如何解决这个问题。
10岁以下的结果:
结果超过10:
我猜它被放置在原来的地方,因为“10”,如果我会使用像“60”那么它将被置于第二或第三位。那么,我该如何解决这个问题呢?我会非常感谢它。
这是比较字符串时的正常行为。字符串不是数字。
方法localizedStandardCompare
在Finder
中进行比较并正确处理数字字符串
list.sort() { $0.points.localizedStandardCompare($1.points) == .orderedDescending }
list.sort() { $0.points.compare($1.points, options: .numeric) == .orderedDescending }