Расписание UILocalNotification каждый день в определенное время

Я использую приведенный ниже фрагмент кода, чтобы запланировать локальное уведомление в определенное время. Но уведомление повторяется каждую минуту, а не через день. Пропустил ли я какие-либо настройки уведомлений. Мой часовой пояс (Азия/Калькутта (IST) смещение 19800) и я использую iPhone 4s.

- (void)applicationDidEnterBackground:(UIApplication *)application
{     
    NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar] ;
    NSDate *now = [NSDate date];
    NSDateComponents *components = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth |  NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:now]; 
    [components setHour:12];
    [components setMinute:00];

    UILocalNotification *notification = [[UILocalNotification alloc]init];
    notification.fireDate = [calendar dateFromComponents:components];
    [notification setAlertBody:@"U got notification!!!"];
    // notification.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] scheduleLocalNotification:notification]; 
}

person user2533604    schedule 30.07.2014    source источник
comment
используйте свойство repeatinterval локального уведомления localNotification.repeatInterval = NSCalendarUnitDay; вы также получите справку stackoverflow.com/questions/23748062/   -  person kamalesh kumar yadav    schedule 30.07.2014


Ответы (1)


Вы должны указать repeatInterval.

- (void)applicationDidEnterBackground:(UIApplication *)application
{     
    NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar] ;
    NSDate *now = [NSDate date];
    NSDateComponents *components = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth |  NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:now]; 
    [components setHour:12];
    [components setMinute:00];

    UILocalNotification *notification = [[UILocalNotification alloc]init];
    notification.fireDate = [calendar dateFromComponents:components];
    notification.repeatInterval = NSDayCalendarUnit;
    [notification setAlertBody:@"U got notification!!!"];
    // notification.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] scheduleLocalNotification:notification]; 
}
person Sviatoslav Yakymiv    schedule 30.07.2014
comment
@[Sviatoslav Yakymiv] значит уведомление будет срабатывать ежедневно в 12:00? - person Nitesh; 04.04.2017
comment
@ Нитеш, да. Будет - person Sviatoslav Yakymiv; 04.04.2017
comment
Как я могу повторять уведомление на основе разного времени в моем массиве, чтобы автоматически уведомлять меня ежедневно в заданное время в массиве, когда дата является индексом массива. У меня есть массив мотыльков. - person Xcodian Solangi; 16.04.2018
comment
@SviatoslavYakymiv Что, если у меня есть массив часов и минут, и я хочу повторять ежедневно? Посмотрите на этот вопрос, пожалуйста, stackoverflow.com/questions/49857236/ - person iOS Developer; 17.04.2018