iOS 8. 在没有任何通知的情况下更改应用徽章编号

iOS 8. Change app badge number without any notifications

在我的应用程序中,我需要在应用程序图标上设置徽章并为此徽章设置数字。问题是我需要像这样注册用户通知设置:

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
{
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]];
}

为了让它在 iOS8 上运行。如果我 运行 此代码,则在启动系统时会向用户显示类似以下内容的警报:ApplicationName would like to send you notifications. Notifications may include bla la bla。这是标准的,我相信你已经看过很多次了。仅仅因为我注册了通知设置,系统就认为我的应用程序会 post 一些通知。但事实并非如此!我不想 post 通知。我想做的就是在图标上设置徽章,在这个徽章上设置一个数字。有没有可能在 iOS 8 上实现这一点而不注册用户通知或注册但不显示该系统警报?伙计们,有什么想法吗?

文档在这一点上很明确,在 iOS8 及以后,您必须注册用户通知:

@property(nonatomic) NSInteger applicationIconBadgeNumber; // set to 0 to hide. default is 0. In iOS 8.0 and later, your application must register for user notifications using -[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.