Как установить пользовательский интервал повторения для Nslocal Notification.....?
Я новичок в разработке для iphone. Я пытаюсь использовать NslocalNotification в моем проекте, мне нужно давать напоминание за каждые 2 часа или каждые два дня или каждые два месяца и т. д. В настоящее время я использую NslocalNotification Повторять интервал. Но он работает только для Каждую минуту за каждый час, используя Nscalender....
NSString *InterVal=[freQuencyArr objectAtIndex:index-2];
NSString *InterValType=[freQuencyArr objectAtIndex:index-1];
if(![InterVal isEqualToString:@"Every"])
{
result=[InterVal intValue];
}else
result=1;
if([InterValType isEqualToString:@"Day"]){
notification.repeatInterval= NSDayCalendarUnit;
}else if([InterValType isEqualToString:@"Week"]){
notification.repeatInterval= NSWeekCalendarUnit;
}
else if([InterValType isEqualToString:@"Month"]){
notification.repeatInterval= NSMonthCalendarUnit;
}else if([InterValType isEqualToString:@"days"]){
notification.repeatInterval=result*24*60*60;
}
здесь Если результат 2 зависит от IntervalType Мне нужно уведомление, что он не работает со мной
if([InterValType isEqualToString:@"days"]){
notification.repeatInterval=result*24*60*60;
}
3 ответа
@Srinivas:
Если вы посмотрите на ссылку, которую я разместил в этом ответе, вы узнаете, что я испробовал здесь все возможные решения, чтобы попытаться сделать то, что вы хотите в данный момент.
Я пытался все это реализовать в своем приложении, но это не работает.
Я боюсь сказать это, но это невозможно. Это только позволяет объектам объекта NSCalendarUnit быть установленным как интервал повторения.
Я потратил почти 2 месяца (я задал вопрос в декабре 2010 года, а сам ответил на него в феврале 2011 года), чтобы попытаться внедрить каждое возможное решение, доступное в Интернете, в различных статьях и на разных форумах, но ни один из них не помог.
Проверьте мою ссылку и ищите все ответы, если что-то полезно для вас.
Как установить локальный интервал повторения уведомлений в пользовательский интервал времени?
Очень надеюсь, что это поможет вам.
repeatInterval
свойство UILocalNotification
нельзя использовать для повторения менее чем за каждый календарный блок, то есть каждый день, каждую неделю, каждый месяц и т. д.
Вместо этого вам придется запланировать несколько уведомлений для достижения желаемого эффекта, установив fireDate
собственность соответственно.
Как говорит Лемнар, вы не можете использовать repeatInterval для повторения с частотой, отличной от календарных единиц, предоставленных Apple. Итак, код ниже:
if([InterValType isEqualToString:@"days"]){
notification.repeatInterval=result*24*60*60;
}
Не буду ничего делать Я также использую повторные уведомления в приложении, которое я создал, и способ, которым я обошел это, заключается в создании нескольких уведомлений, каждое из которых повторяет, чтобы дать "желаемую" частоту повторения. Например, если я хочу повторить "каждые 2 дня", я не могу сделать это с помощью repeatInterval. Однако в моем приложении есть "функция планирования", которая создает несколько отдельных уведомлений для достижения этой цели. Я делаю это в течение произвольного промежутка времени (в моем случае, одна неделя). Таким образом, в приведенном выше примере, когда пользователь указывает, что ему / ей нужно уведомление каждые два дня с сегодняшнего дня, я создаю 3 уведомления (по одному на день 3, 5 и 7).
Для повторения с частотой меньше, чем единица календаря, все немного проще. Скажем, мне нужно повторять каждые 12 часов (в 6 утра и 6 вечера). Затем я бы создал 2 уведомления (одно на 6 утра и другое на 6 вечера). Затем я бы установил repeatInterval для каждого из этих уведомлений в NSDayCalendarUnit. Таким образом, я создал набор уведомлений, которые повторяются каждые 12 часов.
Когда мое приложение загружается, я выхожу еще на 7 дней и воссоздаю уведомления по мере необходимости. Не самое элегантное решение, но это был лучший способ обойти ограничение repeatInterval.