Планираните локални известия, които се показват, когато са ВКЛЮЧЕНИ за период от време, когато са ИЗКЛЮЧЕНИ

Имам ежедневно планирано известие в 20:30:01.

Когато известията са ИЗКЛЮЧЕНИ в приложението Настройки за една седмица, не се показват известия, което е перфектно.

Проблемът е, когато известията се върнат ON в приложението Настройки след тази седмица, всички известия за предходната седмица се показват.

Чудех се как да получа Известия, за да не се "натрупват", така да се каже.

Има ли ред код, който пропускам тук, за да ги „изчистя“?

ViewController.m:

- (void)viewDidLoad {
    [super viewDidLoad];

    UILocalNotification* localNotification = [[UILocalNotification alloc] init];

    NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *comp = [cal components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:[NSDate date]];
    comp.hour = 20; // 19 = 7PM  20=8pm
    comp.minute = 30; // 7:45 PM  8:30
    comp.second = 01; // 7:45:01 PM

    localNotification.fireDate = [cal dateFromComponents:comp];
    localNotification.alertBody = @"Local Notification in iOS8";
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.repeatInterval = NSCalendarUnitDay;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}

*Това са известия, които се показват от момента, когато известията са ИЗКЛЮЧЕНИ, веднага щом превключа известията отново ВКЛ.:*

въведете описание на изображението тук


person SRMR    schedule 30.04.2015    source източник
comment
Когато настройвате бутона на изключено, почиствате ли вече планираните известия?   -  person David 'mArm' Ansermot    schedule 30.04.2015


Отговори (1)


Когато зададете известията на ИЗКЛЮЧЕНО, трябва да се обадите на [[UIApplication sharedApplication] cancelAllLocalNotifications];

person David 'mArm' Ansermot    schedule 30.04.2015
comment
Ах! Така че добавете този един ред, за да изчистите известията. Бърз въпрос, има ли ред, от който се нуждая, за да изключа всички известия? Или всичко, от което се нуждая, е този ред, за да изчистя известията? - person SRMR; 30.04.2015
comment
препоръчително ли е да го поставите ПРЕДИ или СЛЕД [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];? - person SRMR; 01.05.2015
comment
Защото в момента го имам след този ред и не получавам задействане на известието (и Известията са включени) - person SRMR; 01.05.2015
comment
И когато го поставя преди този ред, той прави същото нещо (показва известие, когато се включи отново), за което написах въпроса - person SRMR; 01.05.2015
comment
Не е на същото място, в несесера ви е. Трябва да преминете към a if(switchIsOn) { регистрирайте известие } else { отменете локални известия } - person David 'mArm' Ansermot; 01.05.2015
comment
ааа Не разбрах, че това е друга част. Как бихте изпълнили switchIsOn частта? Това е част от проблема, който не разбирам тогава, как да разберете дали превключвателят е включен или изключен - person SRMR; 02.05.2015
comment
И все още ли правите всичко това в ViewController или нещо от това влиза в AppDelegate? - person SRMR; 02.05.2015