Как установить пользовательский интервал повторения для 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.

Другие вопросы по тегам