排序可选项目的数组保存又一可选 [英] Sort an array of optional items that holds yet another optional
本文介绍了排序可选项目的数组保存又一可选的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我怎么能进行排序自选数组保存一个可选的NSDate?
How can I sort an array of optionals that holds an optional NSdate?
class HistoryItem {
var dateCompleted: NSDate?
}
let firstListObject = someListOfObject.last
let secondListObject = someOtherListOfObject.last
let thirdListObject = evenSomeOtherListOfObject.last //Last returns 'T?'
var array = [firstListObject , secondListObject, thirdListObject]
我如何可以排序基于dateCompleted阵列?
How can I sort array based on dateCompleted?
推荐答案
您的排序功能,可以使用另购的链接和零组合
合并运算符:
Your sort function could use a combination of optional chaining and the nil coalescing operator:
sort(&array) {
(item1, item2) -> Bool in
let t1 = item1?.dateCompleted ?? NSDate.distantPast() as! NSDate
let t2 = item2?.dateCompleted ?? NSDate.distantPast() as! NSDate
return t1.compare(t2) == NSComparisonResult.OrderedAscending
}
这将在 dateCompleted
值项的所有项目进行排序,并
是无
和 dateCompleted ==零
是在遥远的过去当作物品
使他们之前的所有其他项目进行排序。
This would sort the items on the dateCompleted
value, and all items that
are nil
and items with dateCompleted == nil
are treated as "in the distant past"
so that they are ordered before all other items.
这篇关于排序可选项目的数组保存又一可选的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文