2

我正在尝试从通知中心删除通知。我发现了另一个 stackoverflow 用户提供的以下代码:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];

我尝试将该代码添加到下面的 AppDelegate.m

applicationWillEnterForeground

但是,每当我从通知中心点击通知时,它不会在通知中心本身消失。

我究竟做错了什么?我不能使用“CancelAllNotifications”,因为我已经预先安排了将来的通知。

4

1 回答 1

3

从我的测试来看,除了调用之外,我们似乎还需要取消现有的本地通知setApplicationIconBadgeNumber:

由于您想在系统中保留任何即将到来的通知,因此简单地取消显然是行不通的。因此,我要采用的策略是将那些剩余的通知添加到一个新数组中,然后将该数组scheduledLocalNotifications. 重新设置为文档,设置scheduledLocalNotifications属性首先调用cancelLocalNotification:......这正是我们想要做的。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
NSArray *notifications = [UIApplication sharedApplication].scheduledLocalNotifications;
[UIApplication sharedApplication].scheduledLocalNotifications = notifications;
于 2012-11-26T17:48:21.160 回答