3

我有一个场景,我安排了两个单独的 LocalNotifications。一个在午夜十点开始点火,另一个每小时点火一次。我可以通过在调度通知时设置通知的 UserInfo 来区分它们。

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

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

[[UIApplication sharedApplication] cancelAllLocalNotifications];

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

4

2 回答 2

3

是的,如你所见。cancelAllLocalNotifications,顾名思义,将取消一切。是的,您还应该使用userInfo来区分您的通知。

要有选择地管理/删除您的通知,您应该使用 获取所有已注册的通知scheduledLocalNotifications,然后遍历它们检查userInfo,然后调用cancelLocalNotification您不再需要的通知。

于 2013-07-09T14:40:02.557 回答
1

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

let notificationCenter : UNUserNotificationCenter = UNUserNotificationCenter.current()
notificationCenter.removeAllPendingNotificationRequests()
notificationCenter.removeAllDeliveredNotifications()
于 2017-03-19T21:15:43.710 回答