Более простой метод, который я использую (и не требующий значков), - сбросить массив запланированных локальных уведомлений на себя следующим образом:
UIApplication* application = [UIApplication sharedApplication];
NSArray* scheduledNotifications = [NSArray arrayWithArray:application.scheduledLocalNotifications];
application.scheduledLocalNotifications = scheduledNotifications;
Это приводит к тому, что любые запланированные уведомленияостаются действительными, в то время как все «старые» уведомления, присутствующие в Центре уведомлений, удаляются.Тем не менее, он также может показаться, что он может измениться в будущем выпуске iOS, поскольку я не видел никакой документации по этому поведению.
Конечно, если вы хотите удалить all уведомлений, это просто следующее:
[[UIApplication sharedApplication] cancelAllLocalNotifications];