Обновить дату срабатывания локального уведомления и отменить предыдущее уведомление

Я знаю, что есть несколько вопросов здесьи тамотносительно того, как удалить локальное уведомление, которое может быть полностью или конкретное уведомление. Я также просмотрел ссылку на локальный класс уведомлений и нашел некоторые методы, такие как временной интервал повторения, дата срабатывания, тело оповещения, часовой пояс и т. д.но я не могу найти какую-то информацию о том, как изменить дату пожара, которая уже установлена. Скажем, если пользователь устанавливает уведомление с сегодняшней датой и временем 16:50, но если пользователь хочет изменить установленную дату/время, происходит то, что уведомление срабатывает в обоих случаях. Что является ошибкой с точки зрения этики программирования!

На самом деле я хочу, чтобы предыдущее уведомление было отменено, т.е. дата должна быть изменена на отредактированную, а уведомление должно быть установлено и запущено на новую дату.

Вот как я установил уведомление, пример кода:

- (void)setNotification
{
    //Set notification after confirmation of saved data

    Class cls = NSClassFromString(@"UILocalNotification");
    reminderNotification = [[cls alloc] init];

    if (cls != nil) 
    {        
       NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
       [dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
       NSDate *notificationDate = [dateFormat dateFromString:textField2.text];
       reminderNotification.fireDate = notificationDate;
       reminderNotification.timeZone = [NSTimeZone defaultTimeZone];
       NSString *reminderText = [NSString stringWithFormat:@"%@ 's %@ on %@",textField.text,textField1.text,strDate];
       reminderNotification.alertBody = reminderText;
       reminderNotification.alertAction = @"View";
       reminderNotification.soundName = @"lazy_afternoon.mp3";
       reminderNotification.applicationIconBadgeNumber = 1;
       NSDictionary *userDict = [NSDictionary dictionaryWithObject:self.textField1.text forKey:kReminder];
       reminderNotification.userInfo = userDict;
       [[UIApplication sharedApplication] scheduleLocalNotification:reminderNotification];
       [reminderNotification release];
    }
}

Как справиться с этой задачей?

5
задан Cœur 25 March 2019 в 15:46
поделиться