@objcMembers
class Person: NSObject {
var first = ""
var last = ""
var age: Int = 0
init(first: String, last: String, age: Int) {
self.first = first
self.last = last
self.age = age
}
override var description: String {
return first + last + "\(age)"
}
}
let people = [
Person(first: "g", last: "0", age: 18),
Person(first: "d", last: "t", age: 16),
Person(first: "a", last: "x", age: 22)
]
// key:排序key
// ascending: YES-升序, NO-降序
let firstDescriptor = NSSortDescriptor(key: #keyPath(Person.last), ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
let lastDescriptor = NSSortDescriptor(key: #keyPath(Person.first), ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
let ageDescriptor = NSSortDescriptor(key: #keyPath(Person.age), ascending: true)
let descriptor = [firstDescriptor, lastDescriptor, ageDescriptor]
let p = (people as NSArray).sortedArray(using: descriptor) // [g018, dt16, ax22]
网友评论