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

标签 ios nscalendar ekevent ekeventkit

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

如果用户想将该事件推送到 native 日历,我将在 native 中保存该事件,但我如何知道该事件是否已存在于 native 日历中,因为我无法设置 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 也不起作用。

我怎样才能实现所需的功能,有什么建议吗?

最佳答案

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

保存事件后,您可以访问其标识符,

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

保存这个字符串并用它来删除事件,但注意 event.eventIdentifier 是只读的,

关于ios - 如何在 iphone 日历中跟踪我的应用程序添加的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10880895/

相关文章:

objective-c - 如何从 Core Data 实体对象的 NSArray 中提取选定的属性并形成联合字符串?

ios - 如何比较两个日期?

cocoa - stringWithFormat 或 stringFromDate

iphone - predicateForEventsWithStartDate 不起作用

ios - 为所有 UILabel 全局设置 adjustsFontSizeToFitWidth

ios - 在 Swift 3.0 中将 [String, String] 添加到没有 Optional\"(Help)"的 UIAlertController 消息

ios - 有人遇到过以全屏模式 iOS/Mobile Safari 运行的 Web 应用程序的缓存问题吗?

ios - 替换已弃用的 .WeekdayCalendarUnit

iphone - 如何在 iphone 中设置多个带通知的闹钟

ios - EventKit,保存事件时出错 : The repeat field cannot be changed.