首页 > 解决方案 > 我怎样才能避免这种情况下的强制取消变形?

问题描述

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

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

标签: swiftforced-unwrapping

解决方案


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

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

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


推荐阅读