2017-01-05 2 views
0

Я пытаюсь отправлять местные уведомления в каждый понедельник. Скажем, у меня есть сценарий, в котором я должен отправить лекарство с напоминанием в каждый понедельник в течение одного месяца. Таким образом, это будет всего 4 уведомления в месяц. Мой код выглядит следующим образом, но я не могу понять следующее: 1) Как отправить уведомления в определенный день 2) Как ограничить уведомление для максимальной даты окончания.Местные уведомления только в понедельник

Код для отправки уведомления выглядит следующим образом:

let notification = UILocalNotification() 
        notification.alertBody = "Take Medication"      notification.alertAction = "open" // text that is displayed after "slide to..." on the lock screen - defaults to "slide to view" 
        notification.fireDate = NSDate() 
        notification.userInfo = ["title": "notification app", "UUID": "Some Unique Guid"] 
UIApplication.sharedApplication().scheduleLocalNotification(notification) 

Может ли кто-нибудь помочь? С уважением, Neena

+1

Вы, вероятно, хотите запланировать несколько уведомлений, по одному для каждой конкретной даты, которую вы хотите. – Paulw11

+0

Исправить любую дату, которая появилась в понедельник, а затем установить значение времениInterval в неделю. уведомление.repeatInterval = NSWeekCalendarUnit; –

ответ

0

Добавить NSWeekCalendarUnit в NSDateComponents и установите repeatInterval в NSWeekCalendarUnit. Для примера:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDate *now = [NSDate date]; 
NSDateComponents *componentsForFireDate = [calendar components:(NSYearCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit| NSSecondCalendarUnit | NSWeekdayCalendarUnit) fromDate: now]; 
[componentsForFireDate setWeekday: 2] ; // Monday 
[componentsForFireDate setHour: 18] ; // 4PM 
[componentsForFireDate setMinute:0] ; 
[componentsForFireDate setSecond:0] ; 

    //... 
    notification.repeatInterval = NSWeekCalendarUnit; 
0

Вы можете управлять что-то вроде,

var notification = UILocalNotification() 

    notification.fireDate! = fireDate // this should be monday with desired timr 


    notification.repeatInterval = NSWeekCalendarUnit //this will repeat every week 
+0

и как я могу закончить это уведомление через месяц? – neena

+0

UIApplication.shared.cancelLocalNotification (уведомление) – Lion

Смежные вопросы