2012-07-18 66 views
1

目前我正在試圖創建一個iPhone日曆應用程序。爲了確保它與現有的iPhone日曆同步,我正在使用EKEvent工具包。iPhone日曆EKEvent

但是,我將要存儲的事件將具有比EKEvent允許的更多的屬性 - 例如,我的事件不僅具有標題,細節和允許的少數其他類別;他們也將有主題,優先事項...

因此,當我打開每一個我的日曆啓動時間EKEventStore,這些信息將不會被包含在已加載的EKEvents

我怎麼能這個信息給現有EKEvents這樣,每當我的日曆被加載,這些附加的屬性也加載相關聯?

我會用eventIdentifier但iPhone文檔中說,「如果一個事件改變了日曆,它的標識很可能也會改變。」如果我正確地讀這篇文章,這意味着我不能堅持使用eventIdentifier標識事件..

回答

0

我會用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