2011-03-18 97 views
0

我在iPad应用程序开发中需要一个requrirement,我必须在按下按钮时删除日历条目。我知道用EKEventStore创建一个日历条目。我如何删除。伪代码会有很大的帮助。
创建与下面的伪码的入口:以编程方式在ipad上删除日历条目

EKEventStore *eventStore = [[EKEventStore alloc] init]; 
EKEvent *event = [EKEvent eventWithEventStore:eventStore]; 
event.title  = @"EVENT TITLE"; 
event.notes  = @"Event notes here"; 
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]; 

回答

0

为什么你不使用:

- (BOOL)removeEvent:(EKEvent *)event span:(EKSpan)span error:(NSError **)error 
+0

如何获取当前日历条目? – 2011-03-18 19:07:18

+0

要获取当前条目,您必须将'EKSpan'指定为'EKSpanThisEvent' – malinois 2011-03-18 20:07:22

0
EKEventStore *storeDelete=[[EKEventStore alloc]init]; 
     NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 
     NSString *uid= [defaults objectForKey:@"uniqueIdentifier"]; 

     EKEvent *eventDelete=[storeDelete eventWithIdentifier:uid]; 

     [storeDelete removeEvent:eventDelete span:EKSpanFutureEvents commit:YES error:nil]; 

创建EKEventStore一个对象,如果你在其他类中删除。为了删除一个事件,你需要有一个事件的唯一标识符(保存事件后通过调用event.eventIdentifier来获取标识符)。

[storeDelete removeEvent:eventDelete span:EKSpanFutureEvents commit:YES error:nil]; 

用于删除具有事件ID的特定事件。

EKSpanThisEvent仅用于此事件,而EKSpanFutureEvents用于删除与此事件ID相关的所有事件。