Я пытаюсь настроить функцию, которая принимает целое число, и планирует в будущем локальное уведомление n дней. Я получаю сообщение об ошибке, что я не могу преобразовать тип Date to DateComponents. Я не смог понять, как его преобразовать. Я нашел несколько других подобных вопросов here и here, но я не смог адаптировать эти ответы для работы на Swift 3.Преобразование даты в DateComponents в функции, чтобы запланировать локальное уведомление в Swift 3
Как я могу конвертировать Date to DateComponents? Есть ли лучший способ запланировать уведомление?
Заранее спасибо за помощь :)
Строка с ошибкой «Не удается преобразовать значение типа" дата? ожидаемым 'DateComponents' типа аргумент ":
let trigger = UNCalendarNotificationTrigger(dateMatching: fireDateOfNotification, repeats: false)
Полная функция:
func scheduleNotification(day:Int) {
let date = Date()
let calendar = Calendar.current
var components = calendar.dateComponents([.day, .month, .year], from: date as Date)
let tempDate = calendar.date(from: components)
var comps = DateComponents()
//set future day variable
comps.day = day
//set date to fire alert
let fireDateOfNotification = calendar.date(byAdding: comps as DateComponents, to: tempDate!)
let trigger = UNCalendarNotificationTrigger(dateMatching: fireDateOfNotification, repeats: false) //THIS LINE CAUSES ERROR
let content = UNMutableNotificationContent()
content.title = "New Alert Title"
content.body = "Body of alert"
content.sound = UNNotificationSound.default()
let request = UNNotificationRequest(identifier: "alertNotification", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("Uh oh! We had an error: \(error)")
}
}
}
спасибо, это исправляет ошибку и намного проще, чем мой код. Я пытался усложнить его. – tylerSF