我有一個Swift對象列表,我想按照多個條件排序。在列表中的對象是DateRange
類型:如何按多個條件排序Swift對象
class DateRange {
var from: NSDate?
var to: NSDate?
}
列表包含許多對象,其中一些from
或to
字段是零的。我想有這個名單排序:
- 先說有至少有一個日期(無論是
from
或to
) - 而在最後的對象沒有任何 日期
- 然後對象的所有對象
日期本身並不重要,只是它們的存在。在Ruby中我能做到這一點(如果日期是nil
我將它設置爲一個非常低的爲準):
date_ranges.sort { |a, b|
[fix_nil(a.from), fix_nil(a.to)] <=> [fix_nil(b.from), fix_nil(b.to)]
}.reverse
def fix_nil(val)
val.nil? ? Date.new(0) : val
end
做什麼用斯威夫特做到這一點的最好方法是什麼?提前致謝。
用於模式匹配的很好用例,感謝您的幫助! – 2014-11-04 19:30:21