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

问题描述 投票:-2回答:1

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

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

一切正常(有点)如果我使用这种排序方法,它将数字(也称为点数)一直排序到10.但是一旦数字大于10,列表就不再被排序了。我不知道如何解决这个问题。

10岁以下的结果:

1

结果超过10:

2

我猜它被放置在原来的地方,因为“10”,如果我会使用像“60”那么它将被置于第二或第三位。那么,我该如何解决这个问题呢?我会非常感谢它。

ios swift tableview
1个回答
7
投票

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

方法localizedStandardCompareFinder中进行比较并正确处理数字字符串

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

或者compare.numeric选项

list.sort() { $0.points.compare($1.points, options: .numeric) == .orderedDescending }
© www.soinside.com 2019 - 2024. All rights reserved.