5

私が使う

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];

アイコンバッジの数を減らしますが、実際にはクリアされます。ホームボタンを押すと、バッジの数が表示されません。

しかし、このような固定値を試してみると

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:4];

、バッジ数は予想どおりです。

だから、問題は:なぜですか

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];

動作していませんか?

4

5 に答える 5

4

なぜそうしないのか:

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

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges];
于 2013-03-04T07:52:34.473 に答える
0

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1];あなたの間違いですか

[UIApplication sharedApplication].applicationIconBadgeNumber -1

は有効な操作ではありません。

混乱した場合は、一時変数を使用してバッジ数を変更してください。

編集:このように使用してください。

int value = [UIApplication sharedApplication].applicationIconBadgeNumber;
value--;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:value];
于 2013-03-04T08:01:03.467 に答える
0

減少のために迅速にこれを試してください

    let currentCountStr = UIApplication.sharedApplication().applicationIconBadgeNumber.description
    let currentCount = Int(currentCountStr)
    if(currentCount > 0) {
        UIApplication.sharedApplication().applicationIconBadgeNumber = currentCount! - 1
    } else {
        UIApplication.sharedApplication().applicationIconBadgeNumber = 0
    }
于 2016-09-02T03:30:57.993 に答える
-1

これが機能しない理由:

[[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;

表示したい場合は、ポジティブのままにしてください。

于 2013-10-29T00:13:30.107 に答える
-2

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[dict[@"badge"] integerValue]]+=[UIApplication sharedApplication].applicationIconBadgeNumber;

于 2016-06-09T16:34:01.270 に答える