适当的情况下创建新的 EKCalendar iOS
Appropriate situations to create new EKCalendar iOS
我正在开发一个 iOS 应用程序,它可以创建、更新和删除 EKEvents
。这可以通过将事件保存到 EKEventStore.defaultCalendarForNewEvents
来轻松完成。在什么情况下我想为我自己的应用程序创建一个新的 EKCalendar
,这需要什么功能?
我问这个问题是因为我目前正在尝试在 Swift 3.0 中创建一个日历,但它总是失败,这让我开始思考新日历的最初目的是什么。
fileprivate var eventStore = EKEventStore()
fileprivate var newCalendar : EKCalendar?
func createNewCalendar() {
self.newCalendar = EKCalendar(for: .event, eventStore: self.eventStore)
self.newCalendar!.title = "newCal"
let sourcesInEventStore = self.eventStore.sources
self.newCalendar!.source = eventStore.defaultCalendarForNewEvents.source
let newCalIndex = sourcesInEventStore.index {[=11=].title == "newCal"}
if newCalIndex == nil {
do {
try self.eventStore.saveCalendar(self.newCalendar!, commit: true)
print("cal succesful")
} catch {
print("cal failed")
}
}
}
我知道我可以访问 eventStore
,因为我可以提取事件并将它们保存到 EKEventStore.defaultCalendarForNewEvents
并使用他们现有的日历更新它们。
您想要创建新日历的原因可能有很多。就个人而言,当我想将一组事件与已创建并绑定到默认事件的事件分开时,我会选择创建一个新日历。通过这种方式,当您认为不需要时,您还可以利用批量删除这些新创建的事件。只需删除日历,它的所有事件也将被清除。
顺便说一句,如果您不确定日历的 source
(iCloud、本地、可能绑定到某些邮件帐户等)你想创建,就用默认的来源:
let newCalendar = EKCalendar(forEntityType: .Event, eventStore: eventStore)
newCalendar.source = eventStore.defaultCalendarForNewEvents.source
还要确保默认日历的 allowsContentModifications
属性 returns true
如果你想使用它的来源,否则你很可能不会能够在新日历中创建事件。
我正在开发一个 iOS 应用程序,它可以创建、更新和删除 EKEvents
。这可以通过将事件保存到 EKEventStore.defaultCalendarForNewEvents
来轻松完成。在什么情况下我想为我自己的应用程序创建一个新的 EKCalendar
,这需要什么功能?
我问这个问题是因为我目前正在尝试在 Swift 3.0 中创建一个日历,但它总是失败,这让我开始思考新日历的最初目的是什么。
fileprivate var eventStore = EKEventStore()
fileprivate var newCalendar : EKCalendar?
func createNewCalendar() {
self.newCalendar = EKCalendar(for: .event, eventStore: self.eventStore)
self.newCalendar!.title = "newCal"
let sourcesInEventStore = self.eventStore.sources
self.newCalendar!.source = eventStore.defaultCalendarForNewEvents.source
let newCalIndex = sourcesInEventStore.index {[=11=].title == "newCal"}
if newCalIndex == nil {
do {
try self.eventStore.saveCalendar(self.newCalendar!, commit: true)
print("cal succesful")
} catch {
print("cal failed")
}
}
}
我知道我可以访问 eventStore
,因为我可以提取事件并将它们保存到 EKEventStore.defaultCalendarForNewEvents
并使用他们现有的日历更新它们。
您想要创建新日历的原因可能有很多。就个人而言,当我想将一组事件与已创建并绑定到默认事件的事件分开时,我会选择创建一个新日历。通过这种方式,当您认为不需要时,您还可以利用批量删除这些新创建的事件。只需删除日历,它的所有事件也将被清除。
顺便说一句,如果您不确定日历的 source
(iCloud、本地、可能绑定到某些邮件帐户等)你想创建,就用默认的来源:
let newCalendar = EKCalendar(forEntityType: .Event, eventStore: eventStore)
newCalendar.source = eventStore.defaultCalendarForNewEvents.source
还要确保默认日历的 allowsContentModifications
属性 returns true
如果你想使用它的来源,否则你很可能不会能够在新日历中创建事件。