-1

さて、前回の投稿の制約を回避するためのアイデアを思いつきました (これを読んでいる人のために)。アプリケーションバッジ番号が0より大きいかどうかを検出し、それが大きいかどうかに応じてブール値を設定する必要があります。これが私のコードです:

Code is no longer relative to the question.

これでブール値が設定されました。次に、それを読み、次のコードでアクションを実行します。

Code is no longer relative to the question.

私の唯一の問題は、バッジ番号が何であっても、番号が1であり、1であってもコードを実行しないと表示されることです.誰かが私が間違っていることを知っていますか? それはelseステートメントですか、それともバッジ番号を検出する方法ですか? 助けてくれてありがとう!これが私のアプリでぶつかった唯一の壁なので、私はこれについて本当にストレスを感じています。

編集:私は問題を修正しました。以下は私が使用したコードです。これはアプリ デリゲート内に配置する必要があることに注意してください。

int badge = application.applicationIconBadgeNumber;
if(badge)
{
    NSLog(@"App Badge is Greater Than 0");
}
    else
{
    NSLog(@"App Badge is Equal To 0");
}
4

2 に答える 2

0

さて、Cocoa の使用に関する本を読んだ後、私は自分自身の質問に対する答えを見つけました。これが私がしたことです:

int i = application.applicationIconBadgeNumber;
int y = 0;
NSLog(@"The result is %@", (y<i ? @"True" : @"False"));
if(i)
{
    NSLog(@"App Badge is Greater Than 0");
}
else
{
    NSLog(@"App Badge is Equal To 0");
}

それを - (void)applicationDidBecomeActive:(UIApplication *)application の下に置きます。このコードは、アプリのアイコン バッジを比較し、それが y (私の場合は 0) より大きいかどうかを確認し、バッジの数に応じて true または false を返します。これが他の誰かを助けることを願っています!

編集:上記の投稿を読んでください。このコードのはるかに単純なバージョンがあります。

于 2013-08-22T15:20:33.157 に答える
0

一般にNSUserDefaults、アプリケーションの呼び出し全体で値を永続的に保存するために使用します。実際に使用する必要があるかどうかはわかりませんがNSUserDefaults(「グローバル」変数を として割り当てるだけではないのはなぜBoolean needAutoSMSですか)、使用している場合はNSUserDefaults、値を設定した後に次を実行します。

[[NSUserDefaults standardUserDefaults] synchronize]
于 2013-08-20T16:12:33.250 に答える