iPhone日历EKEvent

问题描述:

目前我正在试图创建一个iPhone日历应用程序。为了确保它与现有的iPhone日历同步,我正在使用EKEvent工具包。iPhone日历EKEvent

但是,我将要存储的事件将具有比EKEvent允许的更多的属性 - 例如,我的事件不仅具有标题,细节和允许的少数其他类别;他们也将有主题,优先事项...

因此,当我打开每一个我的日历启动时间EKEventStore,这些信息将不会被包含在已加载的EKEvents

我怎么能这个信息给现有EKEvents这样,每当我的日历被加载,这些附加的属性也加载相关联?

我会用eventIdentifier但iPhone文档中说,“如果一个事件改变了日历,它的标识很可能也会改变。”如果我正确地读这篇文章,这意味着我不能坚持使用eventIdentifier标识事件..

我会用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或使从音符串和比较,为另一个字符串。

+0

你说EKCalendarItem是EKEvent的超类,但我找不到任何地方记录。 (链接的文档列出了EKObject。)它在哪里记录? – Jeff 2013-08-30 23:41:24