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 跑到了最下面。