我试图找到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
.