2012-02-06 22 views
6

Her 30 dakikada bir yerel bildirimi tekrarlamaya çalışıyorum ama kodum düzgün çalışmıyor ... Bana yardım edip çözümü bulursanız minnettar olurum, işte benim kodum:Her 30 dakikada bir repeatinterval sorunu var

UILocalNotification *reminderNote = [[UILocalNotification alloc]init]; 
reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 30]; 
reminderNote.repeatInterval = NSHourCalendarUnit; 
reminderNote.alertBody = @"some text"; 
reminderNote.alertAction = @"View"; 
reminderNote.soundName = @"sound.aif"; 
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNote]; 

cevap

13

firedate bildirim ilk kez yanana zamanı ayarlar ve repeatInterval bildirimin tekrarlar arasındaki aralığıdır. Bu nedenle, söz konusu kod, 30 dakikadan (60 * 30 saniye) ateş açmaya yönelik bir bildirim planlar ve ardından her saat tekrar eder. Ne yazık ki, yalnızca NSCalendar constants tarafından tanımlanan belirli aralıklarla tekrarlamak için bildirimleri zamanlayabilirsiniz: örn., Her dakika, her saat, her gün, her ay, ancak bu aralıkların katları değil.

Neyse ki, her 30 dakikada bir bildirim almak için, iki bildiriminizi zamanlayabilirsiniz: şimdi, şu andan itibaren bir 30 dakika, ve her iki saati de tekrarlayın. Öyle ki:

UILocalNotification *reminderNote = [[UILocalNotification alloc]init]; 
reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 30]; 
reminderNote.repeatInterval = NSHourCalendarUnit; 
reminderNote.alertBody = @"some text"; 
reminderNote.alertAction = @"View"; 
reminderNote.soundName = @"sound.aif"; 
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNote]; 

reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 60]; 
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNote]; 
+0

her 1 saatte bir veya 2 veya 3 Teşekkür ederim Böyle bir şey mi olmalıyım? örneğin her 1 saatte: 'reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow: 60 * 60]; reminderNote.repeatInterval = NSHourCalendarUnit; 've ikinci yangın tarihi' reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow: 60 * 60]; ' –

+0

Her 1 saat için yalnızca bir bildirim planlamanız gerekir. Sadece cevabımdaki kodu al ve son iki sıradan kurtul. Gerekirse, 'fireDate' değerini değiştirerek bildirimin ilk kez ateşlenmesini istediğinizde değiştirin. – yuji

+0

Her 2 saatte bir ya da 3? doğru mu ? : 'reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow: 60 * 60 * 2]; [[UIApplication sharedApplication] zamanlamaLocalNotification: reminderNote]; ' –

İlgili konular