2013-03-04 13 views
5

を減少させます。私がホームボタンを押すと、バッジカウントはそこにはありません。iOSのは、私はアイコンバッジ・カウントをデクリメントし、実際にそれがクリアされます</p> <pre><code>[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber -1]; </code></pre> <p>を使用して、アイコンバッジ番号

しかし、私はこの

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:4]; 

のような固定値をしようとした場合、予想通り、バッジの数があります。

だから、質問は:なぜ

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

が動作していませんか?

+0

減少のために迅速にこれを試してみてください。だから、私はこの問題を引き起こすいくつかの他の事があるかもしれないと思う。あなたはこのコード行をどこに配置したのか、 '[UIApplication sharedApplication] .applicationIconBadgeNumber'の値は何ですか? –

+0

@RoxDorentusコードはdidFinishLaunchingWithOptions内のAppDelegateに配置されます。 –

答えて

4

なぜあなたはないだけでなく、:

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

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges]; 
0

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

[UIApplication sharedApplication].applicationIconBadgeNumber -1 

が行うには有効な操作ではありません、あなたの間違いです。

そうでないと混乱する場合は、バッジ数を変更するために一時的なvarを使用してください。

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

int value = [UIApplication sharedApplication].applicationIconBadgeNumber; 
value--; 
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:value]; 
+0

同じ問題ですが、減少していません。 –

+0

それでも問題のある操作を使用しています。編集内容を –

-1

理由これは動作しません:

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

は、それが-1に設定するだ、バッジ番号をデクリメントいないということです。ドキュメントでは、バッジ番号を0に設定するとそのバッジ番号は非表示になりますが、負の数も表示されます。

[UIApplication sharedApplication].applicationIconBadgeNumber = 100; 
[UIApplication sharedApplication].applicationIconBadgeNumber++; 
[UIApplication sharedApplication].applicationIconBadgeNumber += 2; 

念のそれは正のままにする:

[UIApplication sharedApplication].applicationIconBadgeNumber--; 

applicationIconBadgeNumberは、例えば、通常の変数として使用することができます。

は、それが0これを行うに達する少なくともまで、バッジの数を増減するにはそれが目に見えるようにしたい場合。

-2

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

+0

( - =)にする – kunal

0

(View Controllerの `viewDidLoad`メソッド内に置く、XCodeの4.6、iOSの6.1シミュレータ)期待通りのコードのこの作品は、私の作品

let currentCountStr = UIApplication.sharedApplication().applicationIconBadgeNumber.description 
    let currentCount = Int(currentCountStr) 
    if(currentCount > 0) { 
     UIApplication.sharedApplication().applicationIconBadgeNumber = currentCount! - 1 
    } else { 
     UIApplication.sharedApplication().applicationIconBadgeNumber = 0 
    } 
関連する問題

 関連する問題