glv*_*v19 9 ios ios10 unnotificationrequest unusernotificationcenter
我试图找到UNNotificationRequest对象的预定开火日期.
我正在提取这样的待处理通知请求:
UNUserNotificationCenter.current().getPendingNotificationRequests { (notifications) in
let pendingNotifications : [UNNotificationRequest] = notifications
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试访问每个UNNotificationRequest对象的触发日期.
我可以按如下方式访问UNNotificationTrigger,但无法找到访问通知的计划发布日期的方法.
let notification = pendingNotifications[indexOfNotification]
let trigger : [UNNotificationTrigger] = notification.trigger
Run Code Online (Sandbox Code Playgroud)
我已经能够访问一些通知的日期,如下所示:
let date = trigger.value(forKey: "date") as! Date
Run Code Online (Sandbox Code Playgroud)
这适用于使用UNUserNotificationCenter安排的通知,但在尝试访问iOS 10之前安排的通知日期时出现以下错误.
由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[valueForUndefinedKey:]:此类不是关键日期的密钥值编码兼容.
是否有一种方法可以同时支持新旧通知.
谢谢.
mat*_*att 12
找不到访问通知的预定开火日期的方法.
您已经表明了解如何获取UNNotificationTrigger.好吧,UNNotificationTrigger是一个抽象的超类.你需要找出它真正的类,然后把它归入那个类.然后你可以探索它的属性.
例如:
如果它是UNCalendarNotificationTrigger,则将其强制转换为UNCalendarNotificationTrigger.现在有一个nextTriggerDate.
如果它是UNTimeIntervalNotificationTrigger,则将其强制转换为UNTimeIntervalNotificationTrigger.现在有一个nextTriggerDate.
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |