2012-11-26 39 views
2

我试图从通知中心删除通知。 我发现了下面的代码已经由另一个用户计算器提供:从通知中心删除UILocalNotifications

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; 

我尝试添加下面

该代码到AppDelegate.m applicationWillEnterForeground

但每当我轻按从通知通知中心本身不会在通知中心消失。

我在做什么错? 我无法使用“取消全部通知”,因为我将来预先安排了通知。

回答

3

从我的测试中,它看起来像我们需要取消添加的现有本地通知调用setApplicationIconBadgeNumber:

既然你想保留任何即将到来的通知系统,只是做一个简单的取消显然是行不通的。因此,我想要的策略是将剩余的通知添加到新的数组中,然后将该数组重新设置为集合scheduledLocalNotifications.读取集合然后重新设置集合看起来有点奇怪,但根据到文档中,设置scheduledLocalNotifications属性首先调用cancelLocalNotification: ......这正是我们想要做的。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; 
NSArray *notifications = [UIApplication sharedApplication].scheduledLocalNotifications; 
[UIApplication sharedApplication].scheduledLocalNotifications = notifications; 
+0

这样做的问题是,如果我没有误会,它会取消所有其他通知,以便我预先计划好? – user1839995

+0

好吧,我会等待看看其他人是否知道。 – user1839995

+0

@ user1839995编辑我的答案与可能的解决方法... –