2010-01-09 37 views
1

是否可以從我的可可應用程序添加事件到iCal?我嘗試使用CalCalendarEvent,但它沒有添加任何東西到我的日曆。從可可應用程序添加事件到iCal

CalCalendarStore *calStore = [CalCalendarStore defaultCalendarStore]; 
CalEvent *event = [CalEvent event]; 

CalRecurrenceRule *recRule = [[CalRecurrenceRule alloc] initYearlyRecurrenceWithInterval:1 end:[CalRecurrenceEnd recurrenceEndWithOccurrenceCount:5]]; 
[event setRecurrenceRule:recRule]; 
[event setStartDate:currentDate]; 
[event setEndDate:endDate]; 
event.isAllDay = YES; 

[calStore saveEvent:event span:CalSpanThisEvent error:NULL]; 

謝謝。

+2

無論什麼時候什麼東西看起來什麼都不做,你應該做的第一件事是修復任何被抑制的錯誤返回(即'error:NULL'),然後檢查錯誤(http://developer.apple.com/mac/庫/文檔/可可/概念/ ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html#// apple_ref/DOC/UID/TP40001806-CH204-SW1)。 「saveEvent:span:error:'試圖告訴你你做錯了什麼,但是你已經用嘴封住了嘴巴。更好的是,首先不要壓制錯誤回報。 – 2010-01-09 13:53:03

回答

4

我想你錯過了一個CalCalendar對象。
最小的CalEvent看起來像:

CalEvent * event = [CalEvent event]; event.calendar = calendar; //這很重要 - 否則事件不會出現在iCal中 event.title = title; event.startDate = startDate; event.endDate = endDate;

你也可以檢查saveEvent的NSError。
更新:正如Mike Abdullah在他的評論中指出的那樣,NSError應該是handled with care

+1

一如既往,**不要**首先檢查錯誤對象。檢查該方法是否返回了「NO」,然後*然後*查看錯誤對象。 – 2010-01-09 16:53:52

+0

添加了一個關於該鏈接。謝謝你的評論。 – 2010-01-09 17:19:23

相關問題