Как я могу избежать принудительного разворачивания в этом? - PullRequest
0 голосов
/ 13 сентября 2018

Как можно избежать принудительного развертывания в приведенном ниже коде?

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

1 Ответ

0 голосов
/ 13 сентября 2018

Используйте nil-coalescing, чтобы заменить временную метку nil некоторым значением по умолчанию, например отметка времени в далеком прошлом:

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

Как уже упоминалось выше, нет необходимости сравнивать временные метки до Date значений, цифровые временные метки можно сравнивать напрямую.

...