0

我添加了框架 EventKit 并且我有这个代码。我无法在默认日历中添加活动。

#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];    
}

在控制台中我有这个:“我们正在包含和获取事件,因为这个应用程序做了一些与事件相关的事情。如果这个应用程序不关心事件,那么这可能是一个昂贵的调用。”

我是初学者。谢谢你的帮助。

4

1 回答 1

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];

它在我的第一个日历中为我提供了一个一小时的活动,但我仍然收到了消息。我怀疑该消息是一次性调试消息,但我没有使用该程序的发布版本进行测试。在文档中也找不到任何关于此的内容。

希望有帮助。

于 2012-07-28T19:06:22.517 回答