iOS,减少图标徽章编号

a f*_*yer 5 icons badge ios

我用

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];
Run Code Online (Sandbox Code Playgroud)

减少图标徽章计数,但实际上它已被清除.当我按下主页按钮时,徽章计数不存在.

但是,如果我尝试这样的固定值

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

,徽章数量与预期一致.

所以,问题是:为什么

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];
Run Code Online (Sandbox Code Playgroud)

不工作?

Rui*_*res 4

为什么你不只是:

NSInteger numberOfBadges = [UIApplication sharedApplication].applicationIconBadgeNumber
numberOfBadges -=1;

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