2011-08-01 17 views
6

Así que, básicamente, intento establecer una aplicación que proporcione notificaciones locales constantemente.¿Cómo puedo crear una UILocalNotification que notifique cada dos minutos?

hasta ahora tengo:

- (void)scheduleNotification { 

    [reminderText resignFirstResponder]; 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

    Class cls = NSClassFromString(@"UILocalNotification"); 
    if (cls != nil) { 

     UILocalNotification *notif = [[cls alloc] init]; 
     notif.fireDate = [datePicker date]; 
     notif.timeZone = [NSTimeZone defaultTimeZone]; 

     notif.alertBody = @"Your building is ready!"; 
     notif.alertAction = @"View"; 
     notif.soundName = UILocalNotificationDefaultSoundName; 
     notif.applicationIconBadgeNumber = 1; 

     NSInteger index = [scheduleControl selectedSegmentIndex]; 
     switch (index) { 
      case 1: 
       notif.repeatInterval = NSMinuteCalendarUnit; 
       break; 
      case 2: 
       notif.repeatInterval = NSMinuteCalendarUnit*2; 
       break; 
      default: 
       notif.repeatInterval = 0; 
       break; 
     } 

     NSDictionary *userDict = [NSDictionary dictionaryWithObject:reminderText.text 
               forKey:kRemindMeNotificationDataKey]; 
     notif.userInfo = userDict; 

     [[UIApplication sharedApplication] scheduleLocalNotification:notif]; 
     [notif release]; 
    } 
} 

que estoy tratando de hacerlo para que pueda obtener una notificación cada 2 minutos (cuando me puse el caso 2) y cada 1 minuto (cuando me puse el caso 1) ser notificado. El único problema es ... El * 2 no funciona para que reciba notificaciones cada 2 minutos. ¿Cómo voy a hacerlo para que se notifique cada 2 minutos?

Respuesta

2

Solo puede usar las unidades de calendario definidas en NSCalendarUnit cuando configura la propiedad repeatInterval de una UILocalNotification. No puede usar unidades personalizadas ni manipular las unidades, por lo que no podrá hacer lo que quiera utilizando la propiedad de intervalo de repetición de la notificación.

Para programar notificaciones cada 2 minutos, lo más probable es que desee programar varias notificaciones en diferentes momentos (con 2 minutos de diferencia). Se puede crear un UILocalNotification, y luego programar con:

[[UIApplication sharedApplication] scheduleLocalNotification: localNotification]; 

continuación, modifique la propiedad fireDate (añadiendo su intervalo de repetición), y luego programar de nuevo con el mismo código. Puede repetir esto en un bucle, sin embargo, muchas veces necesita repetir la notificación.

Cuestiones relacionadas