具有多个LocalNotifications的cancelAllLocalNotifications

时间:2013-07-09 14:31:11

标签: ios uilocalnotification

我有一个方案,我安排两个单独的LocalNotifications。一个是在午夜十点开火,另一个在每小时开火。我可以通过在我安排通知时设置UserInfo来区分它们。

对于每小时通知,我会在每次通知触发时在Core Data中创建一个项目。但问题是,对于每小时通知,我每次都会在Core Data中获得大量额外项目。

我没有调用以下代码行,因为调用它似乎也取消了我应该在午夜之后触发的通知。

[[UIApplication sharedApplication] cancelAllLocalNotifications];

如果我有多个计划的LocalNotifications,我应该如何使用cancelAllLocalNotifications?

2 个答案:

答案 0 :(得分:3)

是的,如你所见。 cancelAllLocalNotifications,顾名思义,将取消所有内容。是的,您也应该使用userInfo来区分通知。

要有选择地管理/删除您的通知,您应该使用scheduledLocalNotifications获取所有已注册的通知,然后通过检查userInfo进行迭代,然后使用您不再查看的cancelLocalNotification需要。

答案 1 :(得分:1)

由于发生了 Swift 3.x ,这是删除所有本地推送通知所需的代码:

let notificationCenter : UNUserNotificationCenter = UNUserNotificationCenter.current()
notificationCenter.removeAllPendingNotificationRequests()
notificationCenter.removeAllDeliveredNotifications()