我有一个自定义类:
class MyClass: MySuperClass
{
var myNumber: Int
required init ( id: Int, myNumber: Int )
{
self.myNumber = myNumber
super.init( id: id )
}
required init ( id: Int )
{
fatalError( "init() has not been implemented" )
}
}
我创建了一个长度为 20 的对象数组:
var myNumbers: [ MyClass ] = []
我遍历数组,打印出 myNumber 的值:
0
1
1221
0
0
18394
0
0
0
0
0
1222
6
0
110
0
0
24
71
2
然后我对它们进行排序:
myNumbers.sorted( by: { $0.myNumber < $1.myNumber } )
然后我第二次遍历数组,打印出 myNumber 的值:
0
0
0
0
0
0
0
0
0
0
0
2
1
6
24
71
110
1222
1221
18394
如您所见,它有点对它们进行了排序,但不是很令人满意。
请问我做错了什么?提前谢谢你。
最佳答案
你想要.sortInPlace
我相信..
myNumbers.sortInPlace( by: { $0.myNumber < $1.myNumber } )
/// Sort `self` in-place according to `isOrderedBefore`.
///
/// The sorting algorithm is not stable (can change the relative order of
/// elements for which `isOrderedBefore` does not establish an order).
///
/// - Requires: `isOrderedBefore` is a
/// [strict weak ordering](http://en.wikipedia.org/wiki/Strict_weak_order#Strict_weak_orderings)
/// over the elements in `self`.
关于ios - 为什么我对 array.sorted( 的实现是 : ) in Swift returning a strange order?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41023416/