我正在尝试创建新日历,而不是claendar事件,新日历。
我在网上找到了一个教程并想出了这段代码:
// Create an Event Store instance
let eventStore = EKEventStore();
// Use Event Store to create a new calendar instance
// Configure its title
let newCalendar = EKCalendar(for: .event, eventStore: eventStore)
// Probably want to prevent someone from saving a calendar
// if they don't type in a name...
newCalendar.title = "Some Calendar Name"
// Access list of available sources from the Event Store
let sourcesInEventStore = eventStore.sources
// Filter the available sources and select the "Local" source to assign to the new calendar's
// source property
newCalendar.source = sourcesInEventStore.filter{
(source: EKSource) -> Bool in
source.sourceType.rawValue == EKSourceType.local.rawValue
}.first!
// Save the calendar using the Event Store instance
do {
try eventStore.saveCalendar(newCalendar, commit: true)
UserDefaults.standard.set(newCalendar.calendarIdentifier, forKey: "EventTrackerPrimaryCalendar")
delegate?.calendarDidAdd()
self.dismiss(animated: true, completion: nil)
} catch {
let alert = UIAlertController(title: "Calendar could not save", message: (error as NSError).localizedDescription, preferredStyle: .alert)
let OKAction = UIAlertAction(title: "OK", style: .default, handler: nil)
alert.addAction(OKAction)
self.present(alert, animated: true, completion: nil)
}
问题是应用程序崩溃时出现以下错误:致命错误:在解包可选值时意外发现nil。
我做了一些调试,发现这条线正在崩溃:
newCalendar.source = sourcesInEventStore.filter{
(source: EKSource) -> Bool in
source.sourceType.rawValue == EKSourceType.local.rawValue
}.first!
我的EKEventStore来源似乎是空的。
我将此添加到我的plist中 - 隐私 - 日历使用说明价值&隐私 - 日历使用说明(隐私 - 使用$(PRODUCT_NAME)日历活动的日历使用说明,但我的应用仍然崩溃,请提供帮助。
更新
我的iCloud完全关闭,我100%退出iCloud,仍然没有本地来源,我得到同样的错误。