UILocalNotification, которое повторяется каждый будний день, кроме праздников - PullRequest
1 голос
/ 31 августа 2011

Я работаю над приложением для iPhone, которое требует уведомления в определенное время каждый будний день. Я достиг этого, запланировав UILocalNotification, свойство repeatInterval которого установлено в kCFCalendarUnitWeekday.

Проблема в том, что предупреждение не должно быть представлено в праздничные дни. У меня есть список из 10 праздников, сохраненных в файле конфигурации в моем приложении. Есть ли способ предотвратить отображение уведомления в эти дни? Это уведомление должно быть представлено, когда приложение работает на переднем плане или в фоновом режиме, и предпочтительно, когда оно закрыто, хотя я думаю, что я мог бы принять его не показанным, когда приложение закрыто.

1 Ответ

1 голос
/ 01 сентября 2011

Я скопировал этот ответ из этого поста: https://stackoverflow.com/posts/7257168/edit, но запомнил этот вопрос. Он тоже отвечает на ваш вопрос

Как видно из свойства repeatInterval, вы можете указывать только предопределенные календарные единицы.

enum {
   NSEraCalendarUnit = kCFCalendarUnitEra,
   NSYearCalendarUnit = kCFCalendarUnitYear,
   NSMonthCalendarUnit = kCFCalendarUnitMonth,
   NSDayCalendarUnit = kCFCalendarUnitDay,
   NSHourCalendarUnit = kCFCalendarUnitHour,
   NSMinuteCalendarUnit = kCFCalendarUnitMinute,
   NSSecondCalendarUnit = kCFCalendarUnitSecond,
   NSWeekCalendarUnit = kCFCalendarUnitWeek,
   NSWeekdayCalendarUnit = kCFCalendarUnitWeekday,
   NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal
   NSQuarterCalendarUnit = kCFCalendarUnitQuarter,
};

Таким образом, если вы хотите, чтобы уведомление повторялось в любой из указанных выше интервалов, вы можете использовать свойство repeatInterval с любым из этих значений. Но если вы хотите, чтобы уведомление повторялось с интервалами, например, «Каждые два дня», или с нерегулярными интервалами, вам необходимо создать отдельные уведомления для каждого из этих напоминаний.

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