我在Swift程序中创建新日历时遇到了一些问题。这段代码几乎可以完美地工作:
func createNewCalendar(withName name: String) {
let eventStore = EKEventStore()
let calendar = EKCalendar(for: .event, eventStore: eventStore)
calendar.title = name
calendar.cgColor = UIColor.purple.cgColor
guard let source = eventStore.defaultCalendarForNewEvents?.source else {
return
}
calendar.source = source
try! eventStore.saveCalendar(calendar, commit: true)
}
字符串
但是在一些罕见的情况下,它在模拟器中失败了。在这种情况下,eventStore.defaultCalendarForNewEvents
是nil
,guard
-命令正确地检测到这个错误情况,并且该方法退出而不创建新的日历。
我试图找出正确的方法来处理这种情况。不幸的是,我没能在苹果开发者部分找到推荐。
那么,为新创建的EKCalendar示例创建一个新的源代码的正确代码片段是什么呢?
1条答案
按热度按时间ibps3vxo1#
默认值是可选的,所以如果没有,那么你可以选择其他方式。
(Keep记住,首选项实际上是关于“新事件”,而不是创建日历的位置。
如果有一个来源,我认为你可以根据情况在其中创建。
如果有几个,你可以选择,与明显的风险。
在我看来,代码应该做好当所有合理的选择都用尽时失败的准备。