cancelAllLocalNotifications ne fonctionne pas dans iOS10

Je souhaite supprimer toutes les notifications locales précédentes de NotificationCenter lors de l'ajout de nouvelles notifications. Mais il fonctionne dans iOS9.0 et version inférieure mais dans iOS 10 il triggers plusieurs notifications locales. Il semble donc que cancelAllLocalNotifications pas les notifications.

Code comstackr avec succès dans iOS10.

 UIApplication.shared.cancelAllLocalNotifications() 

Pour iOS 10, Swift 3.0

cancelAllLocalNotifications déconseillé à partir d'iOS 10.

 @available(iOS, introduced: 4.0, deprecated: 10.0, message: "Use UserNotifications Framework's -[UNUserNotificationCenter removeAllPendingNotificationRequests]") open func cancelAllLocalNotifications() 

Vous devrez append cette déclaration d'import,

 import UserNotifications 

Obtenez le centre de notification. Et effectuez l'opération comme ci-dessous

 let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications center.removeAllPendingNotificationRequests() // To remove all pending notifications which are not delivered yet but scheduled. 

Si vous souhaitez supprimer une notification spécifique unique ou multiple, vous pouvez l'get par la méthode ci-dessous.

 center.removeDeliveredNotifications(withIdentifiers: ["your notification identifier"]) 

J'espère que cela aide..!!

Pour iOS 10, Objective C:

 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; [center removeAllDeliveredNotifications]; [center removeAllPendingNotificationRequests]; 

Pour iOS 10, vous pouvez utiliser cette méthode pour supprimer toutes les notifications locales. Je viens de tester, ça marche.

  NSArray *arrayOfLocalNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications] ; for (UILocalNotification *localNotification in arrayOfLocalNotifications) { [[UIApplication sharedApplication] cancelLocalNotification:localNotification] ; }