I am developing an app for medicine reminder. The user inserts the medicine name and time from date picker and I create a reminder for each one.
My question: how I can delete a reminder when the user wants to edit the medicine time for any kind of medicine?
This is my code to save a reminder:
// Get the current date
NSDate *pickerDate = [datePicker date];
// Break the date up into components
NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit ) fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:pickerDate];
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:[timeComponents hour]];
// // Notification will fire in one minute
[dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:[timeComponents second]];
NSDate *itemDate = [calendar dateFromComponents:dateComps];
EKEventStore *eventStore = [[EKEventStore alloc] init];
if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)])
{
// iOS 6 and later
// asks user to allow application to use his device calendar
[eventStore requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error)
{
if (granted)
{
EKReminder *reminder = [EKReminder reminderWithEventStore:eventStore];
reminder.title = [NSString stringWithFormat: @"وقت الدواء"] ;
reminder.calendar = [eventStore defaultCalendarForNewReminders];
// NSDate *date = itemDate;
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:itemDate];
[reminder addAlarm:alarm];
[EventIDArray addObject:alarm];
NSError *error = nil;
[eventStore saveReminder:reminder commit:YES error:&error];
if(error)
NSLog(@"unable to Reminder!: Error= %@", error);
}
}];
}
// iOS < 6
else
{ EKReminder *reminder = [EKReminder reminderWithEventStore:eventStore];
reminder.title = [NSString stringWithFormat: @"وقت الدواء"] ;
reminder.calendar = [eventStore defaultCalendarForNewReminders];
NSDate *date = itemDate;
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:date];
[reminder addAlarm:alarm];
[EventIDArray addObject:alarm];
NSError *error = nil;
[eventStore saveReminder:reminder commit:YES error:&error];
if(error)
NSLog(@"unable to Reminder!: Error= %@", error);
I use remove reminder but the reminder still active.
[eventStore removeReminder:[EventIDArray objectAtIndex:row] commit:YES error:&error];
Thank you, I appreciate any help.