首页 文章

访问UNNotificationRequest对象的计划日期

提问于
浏览
7

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

  • 7

    无法找到访问通知的预定开火日期的方法 .

    您已经表明了解如何获取UNNotificationTrigger . 好吧,UNNotificationTrigger是一个抽象的超类 . 你需要找出它真正的类,然后把它归入那个类 . 然后你可以探索它的属性 .

    例如:

    • 如果是UNCalendarNotificationTrigger,则将其强制转换为UNCalendarNotificationTrigger . 现在它有 nextTriggerDate .

    • 如果是UNTimeIntervalNotificationTrigger,则将其强制转换为UNTimeIntervalNotificationTrigger . 现在它有 nextTriggerDate .

相关问题