Le code suivant fonctionne et supprime tous les événements de calendrier de la base de données de calendrier iPhone. Mais les événements suppriment très lentement: 2 événements par seconde sur l'iPhone 3GS. Donc, si vous avez 3000 événements - alors il faut 25 minutes pour les effacer ... Comment optimiseriez-vous ce code? Peut-être que je fais quelque chose de mal? Merci.Comment supprimer les événements du calendrier plus rapidement?
- (void)deleteAllCalendarEventsFromIPhone:(NSError **)error {
EKEventStore *store = [[EKEventStore alloc] init];
NSUInteger beginYear = 1900;
NSUInteger endYear = 2100;
while (beginYear < endYear) {
NSPredicate *predicate =
[store predicateForEventsWithStartDate:[self createDateWithYear:beginYear month:1 day:1]
endDate:[self createDateWithYear:beginYear + 4 month:1 day:1]
calendars:nil];
NSArray *eventList = [store eventsMatchingPredicate:predicate];
for (EKEvent *event in eventList) {
success = [store removeEvent:event span:EKSpanThisEvent error:nil];
}
beginYear += 4;
}
[store release];
}
Je ne suis pas d'accord avec vous. C'est l'utilisation de EKEventStore. Je reçois des calendriers GroupWise (5000 événements) et je les sauvegarde dans l'application calendrier iPhone (en utilisant le préfixe GW au début du nom de l'événement). Et puis, si l'utilisateur n'a pas besoin de ces événements dans iCal - il peut le supprimer, en utilisant ma fonction. –