2

我正在开发一个与 iPhone 日历相关的简单应用程序。我可以将日历事件从我的应用程序添加到 iPhone 日历。一旦我保存事件,我需要获取保存的事件 ID。我怎样才能做到这一点。下面是保存事件的代码。

EKEventStore *eventStore = [[EKEventStore alloc] init]; 
EKEvent *event  = [EKEvent eventWithEventStore:eventStore]; 
event.title     = @"xxx"; 
event.notes = @"yyy";   
event.startDate = [[NSDate alloc] init];
event.endDate   = [[NSDate alloc] initWithTimeInterval:600 sinceDate:event.startDate]; 
[event setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:event span:EKSpanThisEvent error:&err];    

提前致谢。

4

1 回答 1

1

对于保存事件调用此方法,并打印所有带有标识符的保存事件...

- (void)eventEditViewController:(EKEventEditViewController *)controller
didCompleteWithAction:(EKEventEditViewAction)action {

NSError *error = nil;

EKEvent *thisEvent = controller.event;

switch (action) {
case EKEventEditViewActionCanceled:
// Edit action canceled, do nothing.
break;

case EKEventEditViewActionSaved:
// When user hit "Done" button, save the newly created event to the event store,
// and reload table view.
// If the new event is being added to the default calendar, then update its
// eventsList.
if (self.defaultCalendar ==  thisEvent.calendar) {

[self.eventsList addObject:thisEvent];
}

[controller.eventStore saveEvent:controller.event span:EKSpanThisEvent error:&error];
**NSLog(@"thisEvent.id = %@", thisEvent.eventIdentifier);**
[self.tableView reloadData];
break;

case EKEventEditViewActionDeleted:
// When deleting an event, remove the event from the event store,
// and reload table view.
// If deleting an event from the currenly default calendar, then update its
// eventsList.
if (self.defaultCalendar ==  thisEvent.calendar) {
[self.eventsList removeObject:thisEvent];
}
 **NSLog(@"thisEvent.id = %@", thisEvent.eventIdentifier);**
[controller.eventStore removeEvent:thisEvent span:EKSpanThisEvent error:&error];
[self.tableView reloadData];
break;

default:
break;
}
// Dismiss the modal view controller
[controller dismissModalViewControllerAnimated:YES];

}
于 2012-09-07T04:37:29.867 回答