Можно ли с помощью EventStore создать новый тип календаря iCal? - PullRequest
0 голосов
/ 17 января 2012

Так что в моем приложении я сильно полагаюсь на 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, где, если календарь не находится в массиве календарейЯ пытаюсь создать это.Это, однако, не работает.

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 17 января 2012

В соответствии с документами используйте метод +calendarWithEventStore: EKCalendar для создания нового календаря в указанном вами хранилище событий.Я ожидаю, что это пойдет так:

EKCalendar *newCalendar = [EKCalendar calendarWithEventStore:eventStore];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...