保存的本地EKCalendar没有错误,消失

时间:2015-11-10 22:13:19

标签: ios calendar ekeventstore

我正在尝试使用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),它也不存在,如果我重新启动应用程序,我创建的日历和所有它的事件无处可寻。发生了什么事?

1 个答案:

答案 0 :(得分:1)

如果您的设备上有其他来源的日历,那么类型为EKSourceTypeLocal的日历将无法在Apple日历应用中看到。

此外,当其他日历源处于活动状态时,事件存储将不会显示本地日历。

如果取消激活其他日历,您应该可以在日历应用和事件存储中看到已保存的本地日历。

我假设您的应用具有使用requestAccessToEntityType:completion:获得的必要权限。