我有一个方案,我安排两个单独的LocalNotifications。一个是在午夜十点开火,另一个在每小时开火。我可以通过在我安排通知时设置UserInfo来区分它们。
对于每小时通知,我会在每次通知触发时在Core Data中创建一个项目。但问题是,对于每小时通知,我每次都会在Core Data中获得大量额外项目。
我没有调用以下代码行,因为调用它似乎也取消了我应该在午夜之后触发的通知。
[[UIApplication sharedApplication] cancelAllLocalNotifications];
如果我有多个计划的LocalNotifications,我应该如何使用cancelAllLocalNotifications?
答案 0 :(得分:3)
是的,如你所见。 cancelAllLocalNotifications
,顾名思义,将取消所有内容。是的,您也应该使用userInfo
来区分通知。
要有选择地管理/删除您的通知,您应该使用scheduledLocalNotifications
获取所有已注册的通知,然后通过检查userInfo
进行迭代,然后使用您不再查看的cancelLocalNotification
需要。
答案 1 :(得分:1)
由于发生了 Swift 3.x ,这是删除所有本地推送通知所需的代码:
let notificationCenter : UNUserNotificationCenter = UNUserNotificationCenter.current()
notificationCenter.removeAllPendingNotificationRequests()
notificationCenter.removeAllDeliveredNotifications()