使用EventStore,我可以创建一个新的iCal日历类型吗?

问题描述 投票:0回答:1

所以在我的应用程序中,我非常依赖iCal,我可以使用EventStore添加事件,但仅限于“defaultCalendarForNewEvents”。我想为我在应用程序中创建的事件制作一个新的日历,比如说MyApp日历,它的行为很像iCal日历,如“Home”,“Work”等。

有没有办法以编程方式执行此操作?

现在,我试过这个:

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

NSArray *calendars = [eventStore calendars];
BOOL calendarHasBeenInitialized = NO;
for(NSCalendar *cal in calendars)
{
    if([cal.calendarIdentifier isEqualToString:@"Workout Tracker"])
    {
        calendarHasBeenInitialized = YES;
    }
}
if(!calendarHasBeenInitialized)
{
    NSString *string = [[NSString alloc] initWithString:@"Workout Tracker"];
    NSCalendar *workoutCalendar = (__bridge NSCalendar *)(CFCalendarCreateWithIdentifier(kCFAllocatorSystemDefault, (__bridge CFStringRef)string));
    EKCalendar *ekcalendar = (EKCalendar *)workoutCalendar;
    NSError *error;
    [eventStore saveCalendar:ekcalendar commit:YES error:&error];
}

这在我的App Delegate中调用,如果日历不在日历数组中,我会尝试创建它。但是,这不起作用。

任何帮助,将不胜感激!

ios ios5 icalendar eventkit
1个回答
0
投票

根据文档,使用EKCalendar的+calendarWithEventStore:方法在您指定的事件存储中创建新日历。我希望它会像这样:

EKCalendar *newCalendar = [EKCalendar calendarWithEventStore:eventStore];
© www.soinside.com 2019 - 2024. All rights reserved.