首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问UNNotificationRequest对象的预定日期

访问UNNotificationRequest对象的预定日期
EN

Stack Overflow用户
提问于 2016-11-21 16:42:12
回答 1查看 2.8K关注 0票数 10

我试图找到一个UNNotificationRequest对象的预定触发日期。

我获取挂起的通知请求,如下所示:

代码语言:javascript
复制
UNUserNotificationCenter.current().getPendingNotificationRequests { (notifications) in

        let pendingNotifications : [UNNotificationRequest] = notifications
    }

然后,我尝试访问每个UNNotificationRequest对象的触发日期。

我可以按下面的方式访问UNNotificationTrigger,但无法找到访问通知的预定触发日期的方法。

代码语言:javascript
复制
let notification = pendingNotifications[indexOfNotification]
let trigger : [UNNotificationTrigger] = notification.trigger

我能够访问一些通知的日期,如下所示:

代码语言:javascript
复制
let date = trigger.value(forKey: "date") as! Date

这适用于使用UNUserNotificationCenter调度的通知,但当试图访问iOS 10之前计划的通知日期时,会出现以下错误。

终止应用程序的原因是:“valueForUndefinedKey:这个类不符合键日期的键值编码。”

是否有既支持新通知又支持旧通知的方法。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-21 16:47:30

无法找到访问通知的预定火灾日期的方法。

您已经向我们展示了如何获得UNNotificationTrigger。UNNotificationTrigger是一个抽象的超类。你需要找出它到底是哪一个类,然后把它转换成那个类。然后您可以探索它的特性。

例如:

  • 如果它是一个UNCalendarNotificationTrigger,那么将其转换为一个UNCalendarNotificationTrigger。现在它有了一个nextTriggerDate
  • 如果它是一个UNTimeIntervalNotificationTrigger,那么将其转换为一个UNTimeIntervalNotificationTrigger。现在它有了一个nextTriggerDate

编辑,但请注意,有一个巨大的错误:如果这是一个UNTimeIntervalNotificationTrigger,nextTriggerDate将是错误的。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40725136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档