2012-09-07 57 views
2

我正在开发一个与iPhone日历相关的简单应用程序。我可以将日历事件从我的应用程序添加到iPhone日历中。只要我保存事件,我需要获取保存的事件ID。我怎样才能做到这一点。以下是保存事件的代码。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];  

在此先感谢。

回答

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]; 

}