Ответ 1
int badgeCount = [UIApplication sharedApplication].applicationIconBadgeNumber;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeCount];
Если вы добавите это в оба
- (void)applicationWillEnterForeground:(UIApplication *)application
и
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
Вы сохраните счетчик значков и очистите уведомление о нажатии, когда оно будет нажато в центре уведомлений.