[英]iOS, decrease icon badge number
我用
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];
减少图标徽章计数,但实际上它已被清除。 当我按下主页按钮时,徽章计数不存在。
但是,如果我尝试这样的固定值
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:4];
,徽章数量与预期一致。
所以,问题是:为什么
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];
不工作?
为什么你不只是:
NSInteger numberOfBadges = [UIApplication sharedApplication].applicationIconBadgeNumber
numberOfBadges -=1;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];
是你的错
[UIApplication sharedApplication].applicationIconBadgeNumber -1
在那里做无效的操作。
如果您感到困惑,请使用临时var来更改徽章计数。
编辑:像这样使用它。
int value = [UIApplication sharedApplication].applicationIconBadgeNumber;
value--;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:value];
尝试使用swift进行减少
let currentCountStr = UIApplication.sharedApplication().applicationIconBadgeNumber.description
let currentCount = Int(currentCountStr)
if(currentCount > 0) {
UIApplication.sharedApplication().applicationIconBadgeNumber = currentCount! - 1
} else {
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
}
这不起作用的原因:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];
是它没有递减徽章编号,它将其设置为-1。 文档说将徽章编号设置为0会隐藏它,但负数也会隐藏它。
要减少徽章编号,至少在达到0之前执行此操作:
[UIApplication sharedApplication].applicationIconBadgeNumber--;
applicationIconBadgeNumber可以用作普通变量,例如:
[UIApplication sharedApplication].applicationIconBadgeNumber = 100;
[UIApplication sharedApplication].applicationIconBadgeNumber++;
[UIApplication sharedApplication].applicationIconBadgeNumber += 2;
如果您希望它可见,请确保它保持正面。
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[dict [@“badge”] integerValue]] + = [UIApplication sharedApplication] .applicationIconBadgeNumber;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.