iOS Notification(通知)バッジナンバー表示の要点だけ
iOSのNotificationでは、アプリケーションアイコンの右肩に数字(バッジ)を表示することができるけど、その数字を消去するときにちょっとした落とし穴があるのでメモ。まずはUIApplicationオブジェクトを取得して直接バッジを設定する場合。 (1)アプリケーションオブジェクト(UIApplication)を通じて直接、バッジ設定する場合 .applicationIconBadgeNumber = badgeNumber; この場合は、badgeNumber(NSInteger)の数字が正の数であれば、バッジ数字が表示、ゼロであればバッジアイコンは消去される。 ではローカル通知を通じた場合はどうなるか。 (2)ローカル通知オブジェクト(UILocalNotification)を通じたバッジ設定の場合。ちなみにローカル通知はiOS4から利用可能 NSInteger badgeNumber = 1; UILocalNotification *notification = init]; notification.fireDate = ;//30秒後 notification.alertBody = @”ローカル通知メッセージ“; notification.applicationIconBadgeNumber = badgeNumber; scheduleLocalNotification:notification]; ; badgeNumberが正の数であれば、通知時に該当アプリのバッジにその数字が設定される。しかしゼロの場合は、直前のバッジ数字がそのまま残る。消去したい場合は、applicationBadgeNumberに負の数を設定すれば良い。ちなみに(1)のパターンのときもゼロでなく負の数を与えてもバッジは消える。