我有一个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