Fire a notification at a specific day and time every week

后端 未结 2 2036
感情败类
感情败类 2020-12-09 20:41

I want to trigger a UILocalNotification every Sunday at 8PM, however, I\'m having a fire date every day at 8PM.

NSCalendar *calendar = [[NSCalen         


        
2条回答
  •  渐次进展
    2020-12-09 21:13

    You missed the NSWeekCalendarUnit in the NSDateComponents init function. Add the NSWeekCalendarUnit to it and set the repeatInterval to NSWeekCalendarUnit, then output is

    next fire date = Sunday, November 24, 2013 at 8:00:00 PM  
    

    The code is here:

      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] ;
    
      //...
      notification.repeatInterval = NSWeekCalendarUnit;
      //...
    

提交回复
热议问题