0

ローカル通知をキューに入れ、バッジ数を 1 に設定しています。

いくつかをキューに入れ、アプリを終了すると、それぞれがトリガーされたときに、バッジの数をインクリメントするのではなく、1 に設定します。つまり、キューに 3 つ入れた場合、それらすべてが発行された後、アプリのバッジ カウントは 1 と表示されます。

各発火時にバッジの数を 1 ずつ増やす方法はありますか?

通知が設定されているときに applicationIconBadgeNumber を調べることはオプションではありません。次のようなシナリオを検討するためです。

アプリは通知 A を 1 分間スケジュールし、現在のバッジ数は 0 であるため、notification.count = 1

アプリは通知 B を 10 分間スケジュールし、最後のバッジ カウントは 1 であるため、notification.count = 2

アプリは通知 C を 5 分間スケジュールし、最後のバッジ カウントは 2 であるため、notification.count = 3

ただし、通知 C は B の前に起動するため、起動するとバッジ カウントが 3 に設定されますが、これは正しくありません。B が起動すると、カウントは 2 になり、これも正しくありません。

カウントを自動的にインクリメントする方法がない場合、アプリは、キューに入れられたすべてのものとそれぞれの時間を記憶する複雑なスキームを実装する必要があります。簡単な方法はありますか?

4

1 に答える 1

1
int num = [[UIApplication sharedApplication]applicationIconBadgeNumber];

    if (num == 0) {
         [[UIApplication sharedApplication]setApplicationIconBadgeNumber:1];
    }

    else if (num >= 1) {
        [[UIApplication sharedApplication]setApplicationIconBadgeNumber:num + 1];
    }

これで解決すると思います。

于 2012-06-29T14:29:18.673 に答える