2012-09-07 56 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]; 

}