したがって、私のアプリでは に大きく依存しておりiCal
、 を使用してイベントを追加できますEventStore
が、「defaultCalendarForNewEvents」にのみ追加できます。iCal
アプリで作成したイベントのためだけに新しいカレンダーを作成したいと思います。たとえば、「自宅」、「仕事」などのカレンダーと同じように動作する MyApp カレンダーとしましょう。
これをプログラムで行う方法はありますか?
今、私はこれを試しました:
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
、カレンダーがカレンダー配列にない場合に呼び出され、作成しようとします。ただし、これは機能しません。
どんな助けでも大歓迎です!