Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在iphone日历中跟踪我的应用程序添加的事件_Ios_Nscalendar_Ekevent_Ekeventkit - Fatal编程技术网

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

Ios 如何在iphone日历中跟踪我的应用程序添加的事件,ios,nscalendar,ekevent,ekeventkit,Ios,Nscalendar,Ekevent,Ekeventkit,我从应用程序中的web服务获取事件,每个事件都有一个唯一的标识符 如果用户希望将该事件推送到本机日历,我将以本机格式保存该事件,但我如何知道该事件是否已存在于本机日历中,因为我无法设置EKEvent对象的eventIdentifier属性 我尝试将EKEvent子类化并添加自己的标识符 eventStore = [[EKEventStore alloc] init]; MyEvent *event = [MyEvent eventWithEventStore:eventStore]; event

我从应用程序中的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也不起作用


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

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

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

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

保存此字符串并使用它删除事件,但请注意event.eventIdentifier是只读的,

当我发布此问题时,我就知道了。。通过保留所有EventIdentifier,您将了解保存在本机日历中的所有事件,但如果用户从设备删除应用程序,并且如果他再次安装应用程序,您将不知道本机日历中存在哪些事件。非常感谢。你给了我一个线索。再次感谢