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
或使从音符串和比较,为另一个字符串。
你说EKCalendarItem是EKEvent的超类,但我找不到任何地方记录。 (链接的文档列出了EKObject。)它在哪里记录? – Jeff 2013-08-30 23:41:24