0

如何避免在下面的代码中强制展开?

 self.array = self.array.sorted(by: { Date(timeIntervalSince1970: ($0?.event?.dateRecorded)!) > Date(timeIntervalSince1970: ($1?.event?.dateRecorded)!) })
4

1 回答 1

3

使用 nil-coalescing 将nil时间戳替换为某个默认值,例如远在过去的时间戳:

let past = -TimeInterval.greatestFiniteMagnitude
self.array.sort(by: { 
     $0.event?.dateRecorded ?? past > $1.event?.dateRecorded ?? past
})

如上所述,不需要将时间戳与Date值进行比较,可以直接比较数字时间戳。

于 2018-09-13T14:25:44.807 回答