使用 EKEventStore 从 iPhone 日历中删除事件 [英] Removing events from iPhone calendar with EKEventStore

查看:21
本文介绍了使用 EKEventStore 从 iPhone 日历中删除事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试删除我从 iPhone 日历中创建的活动.

I'm trying to remove events that i have created from the iPhone calendar.

我试过了,但它总是返回 NO:

I tried this, but it always returns NO:

  [eventStore removeEvent:event span:EKSpanThisEvent error:&err];

我按如下方式创建了该事件并且它有效:

I created the event as follows and it works:

eventStore = [[EKEventStore alloc] init];

event = [EKEvent eventWithEventStore:eventStore];

event.title = @"EVENT TITLE";
NSDateFormatter *   dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd:HH:mm"];


NSDate * date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:@"2010-8-15:12:30"];
[date retain];

event.startDate = date;
event.endDate = [[NSDate alloc] initWithTimeInterval:600 sinceDate:event.startDate];

[event setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:event span:EKSpanThisEvent error:&err]; 

有没有办法删除这个事件?或者,如果我再次尝试编写此事件,它只会修改它而不是创建一个新事件,这会更好.

Is there a way to remove this event? Or it would be be better that if I try to write this event again it only modifies it instead of creating a new one.

谢谢,

推荐答案

创建事件后,我将 eventIdentifier 保存在一个数组中:

After creating the event I save the eventIdentifier in an array:

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

这篇关于使用 EKEventStore 从 iPhone 日历中删除事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆