首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >defaultCalendarForNewEvents被定义为可选的,但是不能使用可选绑定来检查它是否为零

defaultCalendarForNewEvents被定义为可选的,但是不能使用可选绑定来检查它是否为零
EN

Stack Overflow用户
提问于 2018-01-09 19:33:36
回答 2查看 376关注 0票数 0

我在我的应用程序中添加了新功能,这是在手机上设置的默认日历中添加事件的能力。我获得了许可,并准备添加该事件。我检查是否有一个实际的默认日历,但我得到了错误:

条件绑定的初始化程序必须具有可选类型,而不是“EKCalendar”

现在,defaultCalendarForNewEvents是一个Optional (参见下面的定义),使用可选绑定来检查它是否为零应该是非常好的。我遗漏了什么?

EKEventStore.h中的defaultCalendarForNewEvents定义:

代码语言:javascript
复制
open var defaultCalendarForNewEvents: EKCalendar? { get }

我在iOS11.2上使用Swift 3(编辑以更正我正在使用的Swift版本)。

下面是代码:

代码语言:javascript
复制
if let defaultCalendar = eventStore.defaultCalendarForNewEvents { <-- error line
    newEvent.title = "Some Event Name"
    newEvent.startDate = Date()
    newEvent.endDate = Date()
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-10 21:18:18

我在swift.org的Swift论坛上问了这个问题,得到了答复。因此,根据回复,“defaultCalendarForNewEvents”在Swift 3中被标记为非可选,而在Swift 4中则是固定的。这就是为什么会出现差异:文档显示Swift 4中的声明,但在Swift 3中显示可选绑定失败。希望这能帮助有同样问题的人。

我还被告知,这个问题没有发布-注意到,因为这是一个小的更新。

票数 1
EN

Stack Overflow用户

发布于 2018-01-09 19:51:27

错误告诉您,defaultCalendarForNewEvents实际上不是可选的。也许有一些“零聚结”或其他一些你看不见的事情在发生。无论如何,如果编译器告诉您它不是可选的,就没有必要为可选绑定而斗争。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48175452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档