5

定期的なイベント (EKEvent) を Calendar に書き込みました。特定の日付に繰り返されるイベントの 1 つを取得して変更するにはどうすればよいですか?

イベントは、次のコードによって作成されました。

+ (void) writeTestEvent{

    EKEventStore *eventStore = [[EKEventStore alloc] init];
    EKEvent *event = [EKEvent eventWithEventStore:eventStore];

    event.calendar = [eventStore defaultCalendarForNewEvents];
    event.title = @"Hello World!";
    event.startDate = [NSDate date];
    event.endDate = [NSDate date];

    EKRecurrenceRule *recurrenceRule = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency:EKRecurrenceFrequencyDaily interval:1 end:nil];
    [event addRecurrenceRule:recurrenceRule];

    [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        if (granted) {
            BOOL isSaved = [eventStore saveEvent:event span:EKSpanFutureEvents commit:YES error:&error];
            NSLog(@"isSaved: (%d) with error: %@", isSaved, error);
        } else {
            NSLog(@"not granted with error: %@", error);
        }
    }];
}

使用-predicateForEventsWithStartDate:endDate:calendars:すると、特定のイベントではなく、日付範囲内のイベントのみが取得されます。また、イベント識別子を使用すると、特定の日付ではなく、1 つのイベントのみが取得されます。

4

1 に答える 1