【发布时间】:2017-11-27 13:51:16
【问题描述】:
我有一个 Users 对象数组:
Class Users {
var firstName:String!
var lastName:String!
var status:Int!
override init(fn: String, ln: String, s: Int) {
self.firstName = fn
self.lastName = ln
self.status = s
}
}
var users:[Users] = [Users]()
users.append(Users(fn:"a", ln:"b", s:1))
users.append(Users(fn:"c", ln:"d", s:3))
users.append(Users(fn:"e", ln:"f", s:2))
users.append(Users(fn:"g", ln:"h", s:1))
users.append(Users(fn:"i", ln:"j", s:1))
users.append(Users(fn:"k", ln:"l", s:2))
我知道根据状态对这个数组进行排序的方法
users = users.sorted(by: {$0.status > $1.status})
但是,我如何对用户数组进行排序,其中 2 在顶部,然后是 3,在最后 1 中,即 [2,2,3,1,1,1]
【问题讨论】:
-
s的值是否固定?必须在 2 , 3 , 1 中? -
如果你想要一个特定的顺序,排序数组的目的是什么?
-
@JonSnow 我有 's' 的随机值,即状态
-
也许你应该定义一个代表状态的枚举。然后,您可以为每个状态类型分配一个 int 值,并根据该值进行排序。
-
@marshallino16 2=在线,1=离线,3=忙碌