繁体   English   中英

iOS,减少图标徽章编号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM