Как говорит Лемнар, вы не можете использовать 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.