Что вам нужно сделать, это передать UNNotificationTrigger
в параметре trigger
. Вы в настоящее время передаете DateComponents
. Попробуйте заменить код следующим:
let date = Date()
var triggerDate = Calendar.current.dateComponents([.hour,.minute,.second,], from: date)
triggerDate.hour = 9
triggerDate.minute = 0
triggerDate.second = 0
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false)
let request = UNNotificationRequest(identifier: "identifier", content: content, trigger: trigger)
В качестве альтернативы: Посмотрите на этот ответ для расширения UIViewController
. Это функция, которая позволяет легко создавать UNNotificationRequest
: Отправлять локальное уведомление, когда таймер истекает
В вашем случае вы можете использовать расширение в ответе, связанном выше, вот так:: self.createLocalNotification(title: "9 hours have passed", hours: 9)