firedate
устанавливает время первого срабатывания уведомления, а repeatInterval
- интервал между повторениями уведомления.Таким образом, код в вопросе планирует запуск уведомления через 30 минут (60 * 30 секунд) с последующим повторением каждый час.
К сожалению, вы можете запланировать повторение уведомлений только с точными интервалами, определенными NSCalendar константы : например, каждую минуту, каждый час, каждый день, каждый месяц, но не кратно этим интервалам.
К счастью, чтобы получать уведомление каждые 30 минут, вы можете просто запланировать двауведомления: одно прямо сейчас, одно через 30 минут, и оба повторяются каждый час.Вот так:
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];