Notifications changement entre IOS7 et IOS8

mercredi 8 juillet 2015
Il est impératif d’apporter les quelques changements sous IOS8 expliquées si dessous, sans quoi vous ne recevrez pas le message d’acceptation de recevoir ou non les notifications par l’utilisateur pour votre application. Donc en soi, vous n’aurez pas d’erreur et votre application fonctionnera correctement mais vous ne recevrez plus les notifications et la méthode suivante ne sera jamais appelée lors du lancement de votre application (après installation).
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
Le principale changement sous sous IOS8, est que la méthode
registerForRemoteNotificationTypes:(UIRemoteNotificationType)
est devenue dépréciée. Du coup, il faut faire un test sur la version d’IOS dans laquelle on se trouve et ensuite implémentée une méthode supplémentaire.
// iOS 8
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
    }else{
        [[UIApplication sharedApplication]
         registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeAlert |
          UIRemoteNotificationTypeBadge |
          UIRemoteNotificationTypeSound)];
    }
Ensuite, il faut intercaler la nouvelle méthode suivante:
// New in iOS 8
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
    [application registerForRemoteNotifications];
}

Tags: IOS7 , IOS8 , Notifications