我可以通过编程方式从iOS 5通知中心清除我的应用程序通知吗?

Wil*_*ill 49 ios5

我想删除我的应用从iOS 5通知中心发出的旧通知.我可以这样做吗?如果是这样,怎么样?

voi*_*ern 75

要从通知中心删除通知,只需将图标徽章编号设置为零.

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
Run Code Online (Sandbox Code Playgroud)

这仅在数字更改时有效,因此如果您的应用不使用您必须先设置的徽章编号,请将其重置.

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
Run Code Online (Sandbox Code Playgroud)

  • 这有效...你必须将它设置为某个值,然后重置为0 ......谢谢@voidStern (3认同)
  • 很好的答案,我尝试了一切,这是有效的.如果你更适合你,你也可以使用点语法:)`[UIApplication sharedApplication] .applicationIconBadgeNumber = 1; [UIApplication sharedApplication] .applicationIconBadgeNumber = 0;` (2认同)

Gab*_*eid 19

我使用的一种更简单的方法(并且不需要标记)是将计划的本地通知数组重置为自身,如下所示:

  UIApplication* application = [UIApplication sharedApplication];
  NSArray* scheduledNotifications = [NSArray arrayWithArray:application.scheduledLocalNotifications];
  application.scheduledLocalNotifications = scheduledNotifications;
Run Code Online (Sandbox Code Playgroud)

这会导致任何计划的通知仍然有效,同时删除通知中心中存在的所有"旧"通知.但是,它也有一些可能会在iOS的未来版本中发生变化的感觉,因为我还没有看到任何关于此行为的文档.

当然,如果要删除所有通知,则只需以下内容:

  [[UIApplication sharedApplication] cancelAllLocalNotifications];
Run Code Online (Sandbox Code Playgroud)