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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам