我正在尝试从通知中心删除通知。 我发现以下代码由另一个stackoverflow用户提供:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
我尝试将该代码添加到下面的AppDelegate.m
applicationWillEnterForeground
但是每当我点击通知中心的通知时,它都不会在通知中心本身消失。
我做错了什么? 我不能使用“CancelAllNotifications”,因为我将来会预先安排通知。
答案 0 :(得分:3)
从我的测试中看,除了调用setApplicationIconBadgeNumber:
由于您希望在系统中保留任何即将发布的通知,因此仅进行简单取消显然不起作用。因此我采用的策略是将剩余的通知添加到新数组中,然后将该数组重新设置为scheduledLocalNotifications.
的集合。读取集合然后重新设置可能看起来有点奇怪然而,根据文档,设置scheduledLocalNotifications
属性首先调用cancelLocalNotification:
...这正是我们想要做的。
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
NSArray *notifications = [UIApplication sharedApplication].scheduledLocalNotifications;
[UIApplication sharedApplication].scheduledLocalNotifications = notifications;