Ответ 1
compare
- это функция NSDate
. С помощью Date
вы можете просто использовать оператор <
. Например:
alarms.sort { $0.time < $1.time }
Сказав, что, compare
тоже должен работать. Я подозреваю здесь более глубокую проблему, возможно, ваши значения time
имеют разные даты. Вы можете смотреть только на часть времени, но при сравнении объектов Date
он учитывает как дату, так и время. Если вы хотите посмотреть только часть времени, есть несколько способов сделать это, например, посмотреть временной интервал между time
и началом дня:
let calendar = Calendar.current
alarms.sort {
let elapsed0 = $0.time.timeIntervalSince(calendar.startOfDay(for: $0.time))
let elapsed1 = $1.time.timeIntervalSince(calendar.startOfDay(for: $1.time))
return elapsed0 < elapsed1
}
Есть много способов сделать это, но, надеюсь, это иллюстрирует эту идею.