我目前正在尝试创建一个iPhone日历应用程序。为了确保它与现有的iPhone日历同步,我使用了EKEvent工具包。
然而,我将存储的事件将具有比EKEvent允许的属性更多的属性-例如,我的事件将不仅具有标题、详细信息和其他几个允许的类别;它们还将具有主题、优先级……
因此,当我在每次启动日历时加载EKEventStore时,这些信息将不会包含在加载的EKEvents中。
如何将此信息与现有EKEvents相关联,以便每当加载日历时,也会加载这些附加属性?
我会使用eventIdentifier,但是iPhone文档说“如果事件的日历改变了,那么它的标识符很可能也会改变”。如果我没看错的话,这意味着我不能一直使用eventIdentifier来识别事件。
发布于 2012-11-12 06:24:13
我将使用notes属性并设置一个字符串,您可以稍后对其进行解析。因为EKCalendarItem是EKEvent的超类,所以EKEvent的一些属性是从EKCalendarItem继承的。(documentation here)
然而,即使笔记不再是EKEvent的属性,你仍然可以在EKEvent上“设置”笔记。(想像一下)
因此,根据您的问题,我可能会为您的每个附加(自定义)属性设置一个整数,如下所示。
在创建事件的视图控制器代码中:-为每个自定义选项设置一个整数。(优先级、主题等)
int优先级= 0;
EKEvent *newEvent = [EKEvent eventWithEventStore:yourEventStore];
[newEvent setCalendar:yourCalendar];
if (priority == 0) {
newEvent.notes = @"0"
}
newEvent.title = @"YourTitle";
newEvent.startDate = yourStartDate;
newEvent.endDate = yourEndDate;
[youreventStore saveEvent:newEvent span:EKSpanThisEvent commit:YES error:nil];然后,如果您想要检查/转换自定义属性,只需在每次使用characterAtIndex或从注释中创建subString并将其与另一个字符串进行比较时检查事件的注释。
https://stackoverflow.com/questions/11546959
复制相似问题