Отправить локальный push - от даты до даты с интервалом часов

Ниже приведен код, который я использую для отправки локального нажатия.

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = pickerDate;
NSString *alertText = [NSString stringWithFormat:@"Test Push Title"];
localNotification.alertBody = alertText;
localNotification.soundName = @"Glass.caf";
localNotification.alertAction = @"Show me the item";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

// Request to reload table view data
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadData" object:self];

Но теперь я хочу отправить с сегодняшнего дня с интервалом в несколько часов.

Например, я хочу отправить push с 1 января по 2014 год на 2 февраля 2014 года.

Теперь каждый день у меня будет 3 толчка. Каждое нажатие начнется в 8 часов вечера и через день после 6 после того, как я получу отдых. Средство сначала нажимает на 8 утра, второе - на 2 часа дня и 3-е нажатие на 8 вечера.

есть идеи как это сделать?

Любое руководство будет высоко оценено.

На самом деле я хочу сделать напоминание, где у меня будет меньше входных данных.

Daily how many times you will have medicine
From what time you will have medicine
After how many interval you will have another medicine
For how long days you will have medicine

Редактировать 1

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = pickerDate;

NSTimeInterval interval = 1*60;

for (int i =0;i<=2;i++ ) {

 // setup the notification using the fire date

 // pickerDate = [pickerDate dateByAddingTimeInterval:interval];
 pickerDate = [pickerDate dateByAddingTimeInterval:interval];
}

Я попытался с этим кодом, но все же я получаю один толчок. Я ожидал 4 толчка...

1 ответ

У вас может быть до 64 запланированных уведомлений, поэтому имейте в виду, что существует предел.

Вы можете поместить свой выше код в цикл и добавить компоненты даты перерыва (с использованием календаря) или интервал секунд (dateByAddingTimeInterval) в дату начала предыдущего уведомления.

Кроме того, это бессмысленно:

[NSString stringWithFormat:@"Test Push Title"]

И расточительно. Нет формата, это просто строка, поэтому просто используйте @"Test Push Title".

NSDate *fireDate = pickerDate;
NSTimeInterval interval = ...;

for ( however you decide how many notifications there are ) {

 // setup the notification using the fire date

 fireDate = [fireDate dateByAddingTimeInterval:interval];
}

licensed under cc by-sa 3.0 with attribution.