3

以下は私のコードです

NSLog(@"%@", thisEvent1.title); 

EKEvent *thisEvent  = [EKEvent eventWithEventStore:eventStore];

eventStore = [[EKEventStore alloc] init];

thisEvent = [EKEvent eventWithEventStore:eventStore];


NSDateFormatter *   dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd:HH:mm"];


NSDate * date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:[itsStartDate objectAtIndex:indexPath.row]];
[date retain];

thisEvent.startDate = [dateFormatter dateFromString:[itsStartDate objectAtIndex:indexPath.row]];
thisEvent.endDate = [dateFormatter dateFromString:[itsEndDate objectAtIndex:indexPath.row]];
thisEvent.notes = [itsNotes objectAtIndex:indexPath.row];
thisEvent.title = [itsTitle objectAtIndex:indexPath.row];
thisEvent.location = [itsLocation objectAtIndex:indexPath.row];
// thisEvent.allDay = TRUE;
NSMutableArray *myAlarmsArray = [[NSMutableArray alloc] init];

EKAlarm *alarm1 = [EKAlarm alarmWithRelativeOffset:-[[itsAlertOne objectAtIndex:indexPath.row] intValue]]; // 1 Hour
// EKAlarm *alarm2 = [EKAlarm alarmWithRelativeOffset:-86400]; // 1 Day

[myAlarmsArray addObject:alarm1];
//[myAlarmsArray addObject:alarm2];

thisEvent.alarms = myAlarmsArray;
[myAlarmsArray release];

//setting the Reuccurence rule

NSString * test1 = [itsRecurrenceFrequency objectAtIndex:indexPath.row];

    BOOL isRecurrenceFrequencyExists = TRUE;

EKRecurrenceFrequency  recurrenceFrequency;

if ([test1 isEqualToString: @"EKRecurrenceFrequencyDaily"]) {
    recurrenceFrequency = EKRecurrenceFrequencyDaily;
}else if([test1 isEqualToString: @"EKRecurrenceFrequencyWeekly"]){
    recurrenceFrequency = EKRecurrenceFrequencyWeekly;
}else if([test1 isEqualToString: @"EKRecurrenceFrequencyMonthly"]){
    recurrenceFrequency = EKRecurrenceFrequencyMonthly;
}else if([test1 isEqualToString: @"EKRecurrenceFrequencyYearly"]){
    recurrenceFrequency = EKRecurrenceFrequencyYearly;
}else{
    isRecurrenceFrequencyExists = FALSE;
}

    if(isRecurrenceFrequencyExists){
        EKRecurrenceRule * recurrenceRule = [[EKRecurrenceRule alloc] 

                                     initRecurrenceWithFrequency:recurrenceFrequency
                                     interval:[[itsRecurrenceInterval objectAtIndex:indexPath.row]intValue]
                                     end:nil];
        if (thisEvent.endDate != nil) {
            EKRecurrenceEnd * end = [EKRecurrenceEnd recurrenceEndWithEndDate:thisEvent.endDate];
            recurrenceRule.recurrenceEnd = end;
        }else {
            thisEvent.endDate = thisEvent.startDate;
        }

        thisEvent.recurrenceRule = recurrenceRule;
        [recurrenceRule release];

    }
[thisEvent setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;


[eventStore saveEvent:thisEvent span:EKSpanFutureEvents error:&err]; 
NSLog(@"%@", thisEvent.eventIdentifier);
[self.eventsList addObject:thisEvent];

このコードには、カレンダーイベントのイベントIDがあります。

  1. ここで、変更を加えてイベントを更新したいのですが、以前に作成したイベントは更新されません。

  2. 次に、イベントの削除など、iPhoneカレンダーで行ったカレンダーイベントの変更をキャプチャできるかどうかを知る必要があります。

  3. eventidを使用してカレンダーイベントを削除できますか?

誰かが答えを知っているなら私を助けてください..よろしくお願いします。

よろしく、ディリップRajkumar

4

1 に答える 1

5

イベントはこれによって作成できます:

[eventStore saveEvent:event span:EKSpanThisEvent error:&err]; 
   NSString* str = [[NSString alloc] initWithFormat:@"%@", event.eventIdentifier];
[arrayofCalIDs addObject:str];

これを使用してイベントを削除できます。

EKEventStore* store = [[[EKEventStore alloc] init] autorelease];
   EKEvent* event2 = [store eventWithIdentifier:[arrayofCalIDs objectAtIndex:i]];
if (event2 != nil) {  
  NSError* error = nil;
  [store removeEvent:event2 span:EKSpanThisEvent error:&error];
} 
[myPath release];

For Updating Event you cannot directly access any method as it is not available in iOS. So, you can do one thing for this. 
(1) First remove the event with eventID.
(2) Create new Event using the same information of the last deleted event.
于 2011-07-12T12:58:59.390 に答える