Не могу удалить один ekevent повторяющегося события в календаре iOS
Я разработал приложение, которое использует календарь с помощью EventKit.
Пользователь может нажать кнопку и удалить конкретное событие. Все работает просто отлично, кроме случаев, когда речь идет о повторяющихся событиях.
Если пользователь сам создал повторяющиеся события, он работает должным образом, одно событие удаляется, а остальные остаются в календаре. Но если повторяющиеся события создаются другим и принимаются пользователем, а затем пытаются удалить одно конкретное из этих событий, все они исчезают из календаря. Зачем?
В этом случае iPad использует только один календарь Exchange. Может ли проблема быть связана с Exchange?
/* Get the Exchange Calendar */
EKEventStore* store = [[EKEventStore alloc] init];
NSError* error = nil;
NSMutableArray* calendars = [[store calendarsForEntityType:EKEntityTypeEvent] mutableCopy];
NSMutableArray* cals = [[NSMutableArray alloc] init];
for (EKCalendar *cal in calendars) {
if (cal.type == EKCalendarTypeExchange) {
[cals addObject:cal];
break;
}
}
/* get the correct event, get Events with startDate & endDate and differ with eventId */
// (tappedEvent = event to remove)
NSPredicate *predicate = [store predicateForEventsWithStartDate:[tappedEvent valueForKey:@"from"] endDate:[tappedEvent valueForKey:@"to"] calendars:cals];
NSArray *theEvents=[store eventsMatchingPredicate:predicate];
NSString *recurrenceEventIdentifier = [tappedEvent valueForKey:@"appID"];
for(EKEvent * theEvent in theEvents){
if([theEvent.eventIdentifier isEqualToString: recurrenceEventIdentifier] && ![store removeEvent:theEvent span:EKSpanThisEvent error:&error]){
NSLog(@"Error in removing event: %@",error);
}
}
[store commit:&error];
if(error){
...
}