更新iOS徽章,无需推送通知

我看到几个待办事项的应用程序,在午夜更新他们的应用程序徽章,总是显示正确的任务数量。 他们这样做, 而不使用推送通知 – 所以我的问题是:他们如何做到这一点? 他们是否使用本地通知 – 如果是的话,当设备closures时,这些通知会被调用吗? 我有点困惑,并会感激一些input。

尝试这个

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 

要通过本地通知执行此操作,您必须在applicationIconBadgeNumber设置值

 UILocalNotification *localNotification = [[UILocalNotification alloc] init]; localNotification.applicationIconBadgeNumber = 1;// set here the value of badge 

自iOS 4.0以来,您可以在至less运行iOS 4.0的所有设备上触发本地通知。 查看UILocalNotification类,它允许您在午夜设置徽章而无需运行应用程序。

在应用程序运行时在代码中设置UIApplicationapplicationIconBadgeNumber属性:

 [UIApplication sharedApplication].applicationIconBadgeNumber = someNumber; 

并为每个人使用新的和shiny的斯威夫特:

 UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber 

Swift 3:

 UIApplication.shared.applicationIconBadgeNumber = someNumber 

对于Objective C,你必须使用:

 [[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];