摘要: 在IOS7中設(shè)置applicationIconBadgeNumber不會(huì)有什么問(wèn)題,但是直接在IOS8中設(shè)置applicationIconBadgeNumber會(huì)報(bào)錯(cuò)
因?yàn)樵贗OS8中要想設(shè)置applicationIconBadgeNumber,需要用戶的授權(quán),在IOS8中,需要加上下面的代碼:
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
UIApplication *app = [UIApplication sharedApplication];
// 應(yīng)用程序右上角數(shù)字
app.applicationIconBadgeNumber = 0;
但是這兩句如果是在IOS7的系統(tǒng)中運(yùn)行的話就會(huì)報(bào)錯(cuò),所以需要先判斷IOS的版本,完整代碼如下:
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
UIApplication *app = [UIApplication sharedApplication];
// 應(yīng)用程序右上角數(shù)字
app.applicationIconBadgeNumber = 0;
如果是注冊(cè)消息推送的話,需要這樣寫(xiě):
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
UIApplication *app = [UIApplication sharedApplication];
// 應(yīng)用程序右上角數(shù)字
app.applicationIconBadgeNumber = 0;