我正在尝试使用EKSourceTypeLocal
来源创建日历。迭代self.eventStore.sources
,找到sourceType == .Local
的那个并尝试使用它创建一个新日历。
self.calendar = EKCalendar(forEntityType: EKEntityType.Event, eventStore: self.eventStore)
self.calendar?.title = "My Awesome Calendar"
self.calendar?.source = src // src.sourceType == .Local
print("Created \(self.calendar!)")
do {
try self.eventStore.saveCalendar(self.calendar!, commit: true)
} catch let err as NSError {
print("Whoops: \(err)")
}
执行没有问题,并允许我向该日历添加一些事件。但是,当我切换到原生日历应用程序时,这个新的应用程序就没有了,如果我在上面的内容完成后查询self.eventStore.calendarsForEntityType(EKEntityType.Event)
,它也不存在,如果我重新启动应用程序,我创建的日历和所有它的事件无处可寻。发生了什么事?
答案 0 :(得分:1)
如果您的设备上有其他来源的日历,那么类型为EKSourceTypeLocal
的日历将无法在Apple日历应用中看到。
此外,当其他日历源处于活动状态时,事件存储将不会显示本地日历。
如果取消激活其他日历,您应该可以在日历应用和事件存储中看到已保存的本地日历。
我假设您的应用具有使用requestAccessToEntityType:completion:
获得的必要权限。