2

Я новичок в NSCalander, NSdates и NSDateComponentsUILocalNotification набор repeatCalendar

В принципе у меня есть локальный Notification, и я хочу повторить дату пожара на основе выбора пользователя, скажем, только на воскресенье и понедельник.

Мы должны использовать repeatCalendar свойство для UILocalNotification, но я не мог связаться с его настройкой.

Итак, любой может помочь мне с простой строкой кодов?

Благодаря

ответ

5

Существует фрагмент кода, чтобы установить UILocalNotification стрелять в каждое воскресенье 20:00.

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDate *now = [NSDate date]; 
NSDateComponents *componentsForFireDate = [calendar components:(NSYearCalendarUnit | NSWeekCalendarUnit| NSHourCalendarUnit | NSMinuteCalendarUnit| NSSecondCalendarUnit | NSWeekdayCalendarUnit) fromDate: now]; 
[componentsForFireDate setWeekday: 1] ; //for fixing Sunday 
[componentsForFireDate setHour: 20] ; //for fixing 8PM hour 
[componentsForFireDate setMinute:0] ; 
[componentsForFireDate setSecond:0] ; 

NSDate *fireDateOfNotification = [calendar dateFromComponents: componentsForFireDate]; 
UILocalNotification *notification = [[UILocalNotification alloc] init] ; 
notification.fireDate = fireDateOfNotification ; 
notification.timeZone = [NSTimeZone localTimeZone] ; 
notification.alertBody = [NSString stringWithFormat: @"New updates!"] ; 
notification.userInfo= [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"New updates added for that week!"] forKey:@"new"]; 
notification.repeatInterval= NSWeekCalendarUnit ; 
notification.soundName=UILocalNotificationDefaultSoundName; 

NSLog(@"notification: %@",notification); 

[[UIApplication sharedApplication] scheduleLocalNotification:notification] ; 

наслаждаться

+0

Одна вещь, и ваш ответ будет лучшим;) Как добавить несколько дней? скажем, воскресенье и понедельник? – Abo3atef

+0

Затем вы можете установить два уведомления. один для каждого воскресенья, по одному на каждое понедельник. – chancyWu

+0

Это проблема, которую я хочу исправить, наверняка Apple не сделала свойство repeatCalendar для создания двух уведомлений на одно и то же событие, скажем, я хочу сделать 10 напоминаний и напомнить мне в 5 дней недели, тогда я должен создать 50 уведомлений?! не делайте сцену Я думаю, что есть способ объединить дни в календаре, такие как маскировка или что-то еще! – Abo3atef

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