2010-01-09 35 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

相关问题