Так что в моем приложении я сильно полагаюсь на iCal
, и я могу добавлять события, используя EventStore
, но только в "defaultCalendarForNewEvents".Я хочу создать новый календарь только для событий, которые я создаю в приложении, скажем, календарь MyApp, который будет вести себя так же, как iCal
календари, такие как «Дом», «Работа» и т. Д.
IsЕсть ли способ сделать это программно?
Прямо сейчас я попробовал это:
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
, где, если календарь не находится в массиве календарейЯ пытаюсь создать это.Это, однако, не работает.
Любая помощь будет оценена!