Я уверен, что этот вопрос где-то дублируется, но я не могу найти решение. Я делаю приложение, в котором одна функция позволяет пользователю выбирать дни и время, когда они будут получать локальное уведомление.
Они могут выбрать любое время дня, которое им нравится, и могут переключать разные дни недели (пн, вт, ср и т. д.). Уведомления будут приходить еженедельно. Поэтому я ограничиваю пользователя созданием только 3 уведомлений - если выбраны все 7 дней, я установлю repeatInterval
на ежедневное (одно уведомление). Если для каждых 3 уведомлений выбрано 6 дней, то мне потребуется отдельное уведомление на каждый день (всего 3x6=18 уведомлений). Скорее всего, будет использоваться только 1 уведомление, так что это нормально.
Я знаю, как установить уведомление на определенное время в будущем, но как установить уведомление, скажем, на 18:00 понедельника?
Ниже приведен мой код, который я использовал для тестирования. Он устанавливает оповещение на 4 секунды в будущем (я звонил из applicationDidEnterBackground
).
NSDateComponents *changeComponent = [[NSDateComponents alloc] init];
changeComponent.second = 4;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *itemDate = [theCalendar dateByAddingComponents:changeComponent toDate:[NSDate date] options:0];
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = itemDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.repeatInterval = NSWeekdayCalendarUnit;