gpt4 book ai didi

ios - EventKit 创建并自动生成 defaultCalendar

转载 作者:行者123 更新时间:2023-11-29 12:00:37 25 4
gpt4 key购买 nike

我正在使用 eventkit 为大学制作一个应用程序。我正在尝试创建一个日历并使他像“defaultCalendar,自动”一样,仅在该日历上添加和读取所有事件。

我尝试做到这一点的代码是:

//我打电话来制作这段代码

EKEventStore *store = [[EKEventStore 分配] 初始化];

    EKSource *localSource = nil;
for (EKSource *source in store.sources)
if (source.sourceType == EKSourceTypeLocal){
localSource = source;
break;
}

EKCalendar *cal;
cal = [EKCalendar calendarWithEventStore:store];

cal.title = @"NewCalendar";
cal.source = localSource;
[store saveCalendar:cal commit:YES error:nil];


//self.appDelegate.eventManager.selectedCalendarIdentifier = cal.calendarIdentifier;
// [cal.calendarIdentifier=cal.calendarIdentifier];


[[NSUserDefaults standardUserDefaults] setObject:cal.calendarIdentifier forKey:@"NewCalendar"];

}

所以问题是我如何创建这个日历,并且只在我的应用程序上使用它。谢谢

最佳答案

您只需要创建日历并将其标识符存储在 NSUserDefaults 中。获得标识符后,您始终可以在您的应用程序中使用该日历。您的代码已经创建了日历 cal。从那里,首先,在 NSUserDefaults 中创建一个键,这样你就可以存储它的标识符

NSString *defaultCalendarIdentifier = [[NSUserDefaults standardUserDefaults] stringForKey:@"defaultCalendarIdentifier"];

然后您可以将日历标识符存储为刚刚创建的键的值。

[[NSUserDefaults standardUserDefaults] setObject: [eventStore cal].calendarIdentifier forKey:@"defaultCalendarIdentifier"];

NSUserDefaults 将保存日历 ID,即使在用户关闭并重新打开应用程序后也是如此。

当您从该日历创建和读取事件时,请始终使用您刚刚存储的日历 ID。

EKEvent *event = [EKEvent eventWithEventStore:eventStore];
//get default Calendar Identifier
NSString *defaultCalendarIdentifier = [[NSUserDefaults standardUserDefaults]
stringForKey:@"defaultCalendarIdentifier"];
event.calendar = [eventStore calendarWithIdentifier:defaultCalendarIdentifier

这基本上就是您创建日历并在您的应用中使用它的方式。

关于ios - EventKit 创建并自动生成 defaultCalendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37190419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com