sort排序,如果兩個對象的值相等,排序就會出現問題。
上個例子給大家看看。
老規矩先創建個person類
class Person {
var name = ""
var id = 0
init(i:Int,n:String) {
name = n
id = i
}
}
初始化對象數組,數組中的id都相同,設置爲1
var arr = [Person]()
(1...30).map {
arr.append(Person.init(i: 1, n: "name:\($0)"))
}
開始排序
arr.sort { (i1, i2) -> Bool in
return i1.id < i2.id
}
arr.forEach { (p) in
print(p.name,p.id)
}
打印結果:
name:1 1
name:2 1
name:3 1
name:4 1
name:5 1
name:6 1
name:7 1
name:8 1
name:10 1
name:11 1
name:12 1
name:13 1
name:14 1
name:15 1
name:16 1
name:17 1
name:18 1
name:19 1
name:20 1
name:21 1
name:22 1
name:23 1
name:24 1
name:25 1
name:26 1
name:27 1
name:28 1
name:29 1
name:30 1
name:9 1
可以看見,name:9 跑到了最下面。