iOS7: enabledRemoteNotificationTypes devuelve UIRemoteNotificationTypeNone pero en Settings.app Alert, Badge and Sound están habilitados

Tengo el siguiente código en la acción del button del controller de vista:

- (IBAction)requestPermissions:(id)sender { DDLogInfo(@"Start permission requesting."); if ([[UIApplication shanetworkingApplication] respondsToSelector:@selector(registerForRemoteNotifications)]){ [[UIApplication shanetworkingApplication] registerForRemoteNotifications]; } else { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; [[UIApplication shanetworkingApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound]; } } 

Una vez finalizado el logging, se didBecomeActive notificaciónBecomeActive y hago una comprobación de lo que hizo el usuario:

 -(void)didBecomeActive:(NSNotification *)notification { if([[UIApplication shanetworkingApplication] enabledRemoteNotificationTypes] == UIRemoteNotificationTypeNone){ // if user decline } } else { // if user accept } 

Entonces, mi problema es: si el usuario declina recibir notifications push y luego decide habilitarlas (Configuración-> Centro de notifications-> Mi aplicación), hay una sorpresa: 'Alert', 'Badge' y 'Sound' están habilitados en Settings , pero la aplicación devuelve UIRemoteNotificationTypeNone .

¿Alguna idea de lo que está mal?

Nota: Sé que estos methods están en desuso, así que no me digas que use registerForRemoteNotifications: y UIUserNotificationSettings , ya está hecho.

Bueno, posiblemente devuelve un valor adecuado después de reiniciar la aplicación, ¿podrías verificar eso? He encontrado situaciones en las que iOS mata automáticamente tu aplicación al cambiar los permissions en Configuración mientras tu aplicación está en segundo plano, acceso de acceso a fotos; Supongo que es solo una implementación de errores en iOS en este caso, esto no me sorprendería. Creo que he seguido esta situación que tú también describes, y después de encontrar que devuelve valores inválidos / antiguos hasta el reinicio, me di por vencido y hice que el flujo contara con el reinicio requerido.

De todos modos, no creo que haya nada que puedas hacer al respecto.