我在我的应用程序中从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也不起作用。
我该如何实现所需的功能?有什么建议吗?