【发布时间】:2012-01-17 06:33:42
【问题描述】:
所以在我的应用程序中,我非常依赖iCal,我可以使用EventStore 添加事件,但只能添加到“defaultCalendarForNewEvents”。我想为我在应用程序中创建的事件创建一个新日历,比如说 MyApp 日历,它的行为很像 iCal 日历,如“家庭”、“工作”等。
有没有办法以编程方式做到这一点?
现在,我已经尝试过了:
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