【发布时间】:2025-12-27 05:00:12
【问题描述】:
我正在寻找一种基于布尔值对 Swift 数组进行排序的方法。
我已经使用强制转换为 NSArray 让它工作了:
var boolSort = NSSortDescriptor(key: "selected", ascending: false)
var array = NSArray(array: results)
return array.sortedArrayUsingDescriptors([boolSort]) as! [VDLProfile]
但我正在寻找 Swift 变体,有什么想法吗?
更新 感谢 Arkku,我已经设法使用以下代码解决了这个问题:
return results.sorted({ (leftProfile, rightProfile) -> Bool in
return leftProfile.selected == true && rightProfile.selected != true
})
【问题讨论】:
-
重新。在问题中更新,将布尔值与
true进行比较是不必要的混乱,最好在Swift 风格中省略闭包周围的()(当闭包是最后一个参数时是允许的)。