我在我的应用程序中添加了新功能,这是在手机上设置的默认日历中添加事件的能力。我获得了许可,并准备添加该事件。我检查是否有一个实际的默认日历,但我得到了错误:
条件绑定的初始化程序必须具有可选类型,而不是“EKCalendar”
现在,defaultCalendarForNewEvents是一个Optional (参见下面的定义),使用可选绑定来检查它是否为零应该是非常好的。我遗漏了什么?
EKEventStore.h中的defaultCalendarForNewEvents定义:
open var defaultCalendarForNewEvents: EKCalendar? { get }我在iOS11.2上使用Swift 3(编辑以更正我正在使用的Swift版本)。
下面是代码:
if let defaultCalendar = eventStore.defaultCalendarForNewEvents { <-- error line
newEvent.title = "Some Event Name"
newEvent.startDate = Date()
newEvent.endDate = Date()
}发布于 2018-01-10 21:18:18
我在swift.org的Swift论坛上问了这个问题,得到了答复。因此,根据回复,“defaultCalendarForNewEvents”在Swift 3中被标记为非可选,而在Swift 4中则是固定的。这就是为什么会出现差异:文档显示Swift 4中的声明,但在Swift 3中显示可选绑定失败。希望这能帮助有同样问题的人。
我还被告知,这个问题没有发布-注意到,因为这是一个小的更新。
发布于 2018-01-09 19:51:27
错误告诉您,defaultCalendarForNewEvents实际上不是可选的。也许有一些“零聚结”或其他一些你看不见的事情在发生。无论如何,如果编译器告诉您它不是可选的,就没有必要为可选绑定而斗争。
https://stackoverflow.com/questions/48175452
复制相似问题