使用我的应用程序将事件添加到日历IOS7

时间:2013-10-11 11:02:02

标签: objective-c calendar

我正在尝试构建一个应用程序,将事件添加到IOS 7中的默认日历。 首先,我添加了一个框架:EventKit.Framework并将其导入我的.m

这是我的代码:

    - (void)AddEventToCalendar
{

    EKEventStore *eventStore = [[EKEventStore alloc] init];

    EKEvent *event = [EKEvent eventWithEventStore:eventStore];

    // title of the event
    event.title = @"Event";

    // star tomorrow
    event.startDate = [[NSDate date] dateByAddingTimeInterval:86400]; 

    // duration = 1 h
    event.endDate = [[NSDate date] dateByAddingTimeInterval:90000]; 

    // set the calendar of the event. - here default calendar
    [event setCalendar:[eventStore defaultCalendarForNewEvents]];

    // store the event
    NSError *err;
    [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
}

但是当我在iPhone上运行时,它会给我这个错误

  

错误Domain = EKCADErrorDomain Code = 1013“操作无法完成。(EKCADErrorDomain错误1013。)”

你知道我能做什么吗?

2 个答案:

答案 0 :(得分:4)

首先,您必须初始化EventStore,然后使用以下方法请求访问以使用用户的Calendar数据库:

[yourEventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    if(granted) {
        // create/edit your event here
}];

请参阅AppleDocumentation

希望它有所帮助。

答案 1 :(得分:3)

尝试使用 requestAccessToEntity ,它将解决您的问题。