我想在两个参数上对数组进行排序,例如,名称,然后按描述。首先按名称对数组进行排序,然后按描述对数组进行排序是行不通的,因为这样就不会对数组进行名称排序。
解决方案应该是这样的:
var sortedArray = sorted(items, { (o1: MyObject, o2: MyObject) -> Bool in
return o1.name < o2.name and o1.description < o2.description
})
谢谢
您的语法看起来正确。只需将闭包更改为
return o1.name == o2.name ? (o1.description < o2.description) : (o1.name < o2.name)
如果要使用两个以上的排序标准,建议使用老式的排序描述符。
let sortedArray = (unsortedArray as NSArray).sortedArrayUsingDescriptors([
NSSortDescriptor(key: "name", ascending: true),
NSSortDescriptor(key: "description", ascending: true),
....
]) as! [Object]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句