Ant*_*ine 42 arrays sorting swift
我正在寻找一种基于布尔值对Swift数组进行排序的方法.
我已经使用强制转换为NSArray工作了:
var boolSort = NSSortDescriptor(key: "selected", ascending: false)
var array = NSArray(array: results)
return array.sortedArrayUsingDescriptors([boolSort]) as! [VDLProfile]
Run Code Online (Sandbox Code Playgroud)
但我正在寻找Swift变体,任何想法?
更新 感谢Arkku,我已设法使用以下代码解决此问题:
return results.sorted({ (leftProfile, rightProfile) -> Bool in
return leftProfile.selected == true && rightProfile.selected != true
})
Run Code Online (Sandbox Code Playgroud)
Ark*_*kku 89
Swift的数组可以使用sort
或与新数组一起排序sorted
.任一函数的单个参数是一个闭包,取两个元素并返回true
iff第一个在第二个之前排序.使用闭包参数的最短方法是将它们称为$0
和$1
.
例如(首先对真正的布尔值进行排序):
// In-place:
array.sort { $0.selected && !$1.selected }
// To a new array:
array.sorted { $0.selected && !$1.selected }
Run Code Online (Sandbox Code Playgroud)
(编辑:更新了Swift 3和4,之前sort
曾经sortInPlace
和sorted
过去了sort
.)
归档时间: |
|
查看次数: |
14195 次 |
最近记录: |