2012-07-12 124 views
0

我添加了框架EventKit,并且拥有此代码。我无法在默认日历中添加活动。使用EventKit将活动添加到日历Mountain Lion

#import "Calendar.h" 
#import <EventKit/EventKit.h> 

@implementation Calendar 

-(IBAction)addCal:(id)sender 
{ 
    EKEventStore *store = [[EKEventStore alloc] initWithAccessToEntityTypes:EKEntityMaskEvent]; 
    EKEvent *evento = [EKEvent eventWithEventStore:store]; 

    [evento setStartDate:[NSDate date]]; 
    [evento setTitle:@"Title"]; 
    [evento setCalendar:[store defaultCalendarForNewEvents]]; 

    NSError *error; 
    [store saveEvent:evento span:EKSpanThisEvent commit:YES error:&error];  
} 

在控制台我有这样的: “我们正在与包括获取事件,因为这个应用做了一些事件相关。如果这个应用程序不关心的事件,那么这是一个潜在的昂贵的呼叫。”

我是初学者。 感谢您的帮助。

+0

我也从事件套件开始。你能告诉我你的XCode版本是什么吗?我在4.5 DP3上遇到大问题,甚至无法加载头文件。一旦完成,我将能够查看事件创建;-) – markjs 2012-07-28 15:33:43

回答

2

我成功地使用这个代码:

//Calendar Test: 
    [self setEventStore:[[EKEventStore alloc] initWithAccessToEntityTypes:EKEntityMaskEvent]]; 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSDateComponents *dc = [[NSDateComponents alloc] init]; 
    [dc setHour:1]; 
    NSDate *startDate = [NSDate date]; 
    NSDate *endDate = [calendar dateByAddingComponents:dc toDate:[NSDate date] options:0]; 
    EKEvent *anEvent = [EKEvent eventWithEventStore:eventStore]; 
    [anEvent setTitle:@"event1"];; 
    [anEvent setCalendar:[[eventStore calendarsForEntityType:EKCalendarTypeLocal]objectAtIndex:0]]; 
    [anEvent setLocation:@"Somewhere"]; 
    [anEvent setStartDate:startDate]; 
    [anEvent setEndDate:endDate]; 
    [eventStore saveEvent:anEvent span:EKSpanThisEvent commit:YES error:nil]; 

它给了我在我的第一个日历一小时的事件,但我还是得到了消息。我怀疑这个消息是一次性调试消息,但我没有测试该程序的发布版本。在文档中找不到关于此的任何内容。

希望有所帮助。