如何跟踪我的应用程序在iPhone日历中添加的事件

时间:2012-06-04 12:00:04

标签: ios nscalendar event-store ekeventkit ekevent

我从应用程序中的Web服务获取事件,每个事件都有唯一的标识符。

如果用户想要将该事件推送到本机日历,我会将该事件保存为本机,但我怎么知道该事件是否已存在于本机日历中,因为我无法设置EKEvent对象的eventIdentifier属性

我尝试了继承EKEvent并添加自己的标识符

eventStore = [[EKEventStore alloc] init];
MyEvent *event = [MyEvent eventWithEventStore:eventStore];
event.myEventIdentifier = @"MyEventIdentifier";
[event setCalendar:[eventStore defaultCalendarForNewEvents]];
event.startDate = [NSDate date];
event.endDate = [NSDate dateWithTimeIntervalSinceNow:10000];
event.title = @"MyEventTitle";
[eventStore saveEvent:event span:EKSpanThisEvent error:nil];

但是当我检索事件对象时,我没有得到我的子类对象,当我调用

时它抛出了异常
[event valueForKey:@"MyEventIdentifier"];

现在你可以看到,我不能在EKEvent类中设置eventIdentifier属性,同时子类化EKEvent也不起作用。

如何获得所需的功能,任何建议?

1 个答案:

答案 0 :(得分:3)

我正在研究EKEvent类似的东西,但EKEvent确实有一个你可以访问的标识符。

保存活动后,您可以访问其标识符

NSString *eventID = [NSString stringWithFormat:@"%@", event.eventIdentifier];

保存此字符串并使用它删除事件,但请注意event.eventIdentifier仅为READ,