Pida permiso al usuario para mostrar la alerta cuando dispare la notificación local.

Quiero mostrar una alerta cuando se activa la notificación local, pero para eso tengo que pedir permiso, como me dice cuando ejecuto la aplicación en mi iPhone:

Intento progtwigr una notificación local {date de lanzamiento = viernes 13 de junio de 2014 12 h 10 min 27 s Hora de verano de Europa central, zona horaria = (nula), intervalo de repetición = 0, conteo repetido = UILocalNotificationInfiniteRepeatCount, próxima date de lanzamiento = viernes 13 de junio de 2014 12 h 10 min 27 s Hora de verano de Europa central, información del usuario = (nula)} con una alerta pero no ha recibido permiso del usuario para mostrar alertas

¿Cómo puedo hacer eso? Aquí está el código tal como está ahora:

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:timeUntilNotification]; localNotif.soundName = UILocalNotificationDefaultSoundName; localNotif.alertBody = @"ZEIT!"; localNotif.alertAction = @"Show me the Timer!"; localNotif.applicationIconBadgeNumber = [[UIApplication shanetworkingApplication] applicationIconBadgeNumber] +1; [[UIApplication shanetworkingApplication] scheduleLocalNotification:localNotif]; 

agregue este código, mostrará una vista de alerta para solicitar permiso al usuario.

 if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]) { [[UIApplication shanetworkingApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeSound|UIUserNotificationTypeBadge categories:nil]]; } 

puede agregar este código en la aplicación: didFinishLaunchingWithOptions; método, para que la aplicación le pregunte a su usuario cuando inicien la aplicación, o puede agregar este código cuando configure Notificación local, depende de usted.

La respuesta de is es buena.

En Swift se ve así:

 let registerUserNotificationSettings = UIApplication.instancesRespondToSelector("registerUserNotificationSettings:") if registerUserNotificationSettings { var types: UIUserNotificationType = UIUserNotificationType.Alert | UIUserNotificationType.Sound UIApplication.shanetworkingApplication().registerUserNotificationSettings(UIUserNotific‌​ationSettings(forTypes: types, categories: nil)) } 

Vea también aquí: solicite permiso de usuario para recibir UILocalNotifications en iOS 8

 //register notifications if([application respondsToSelector:@selector(registerUserNotificationSettings:)]) //ios 8+ { [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]; [application registerForRemoteNotifications]; } else // ios 7 or less { [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge]; } 

En el lenguaje rápido …

 var type = UIUserNotificationType.Badge | UIUserNotificationType.Alert | UIUserNotificationType.Sound; var setting = UIUserNotificationSettings(forTypes: type, categories: nil); UIApplication.shanetworkingApplication().registerUserNotificationSettings(setting); UIApplication.shanetworkingApplication().registerForRemoteNotifications(); 

Prueba esto para Objective-C

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. NSLog(@"didFinishLaunchingWithOptions"); if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]) { [[UIApplication shanetworkingApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeSound categories:nil]]; } return YES; }