Доступ к запланированной дате объекта UNNotificationRequest
Я пытаюсь найти запланированную дату запуска объекта UNNotificationRequest.
Я получаю ожидающие запросы уведомлений, как это:
UNUserNotificationCenter.current().getPendingNotificationRequests { (notifications) in
let pendingNotifications : [UNNotificationRequest] = notifications
}
Затем я пытаюсь получить доступ к дате запуска каждого объекта UNNotificationRequest.
Я могу получить доступ к UNNotificationTrigger, как показано ниже, но не могу найти способ получить доступ к запланированной дате запуска уведомления.
let notification = pendingNotifications[indexOfNotification]
let trigger : [UNNotificationTrigger] = notification.trigger
Мне удалось получить доступ к дате некоторых уведомлений, как показано ниже:
let date = trigger.value(forKey: "date") as! Date
Это работает для уведомлений, запланированных с использованием UNUserNotificationCenter, но я получаю следующую ошибку при попытке получить доступ к дате уведомлений, запланированной до iOS 10.
Завершение работы приложения из-за необработанного исключения "NSUnknownKeyException", причина: "[ valueForUndefinedKey:]: этот класс не соответствует кодовому значению для контрольной даты".
Есть ли способ, который будет поддерживать как новые, так и старые уведомления.
Спасибо.
1 ответ
не может найти способ получить доступ к запланированной дате запуска уведомления.
Вы уже показали, что понимаете, как получить UNNotificationTrigger. Ну, UNNotificationTrigger - это абстрактный суперкласс. Вам нужно выяснить, что это за класс на самом деле, и привести его к этому классу. Тогда вы можете изучить его свойства.
Например:
Если это UNCalendarNotificationTrigger, то приведите его к UNCalendarNotificationTrigger. Теперь у него есть
nextTriggerDate
,Если это UNTimeIntervalNotificationTrigger, то приведите его к UNTimeIntervalNotificationTrigger. Теперь у него есть
nextTriggerDate
,