Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios defaultCalendarForNewEvents定义为可选,但可以';t使用可选绑定检查它是否';零_Ios_Swift_Swift4_Eventkit_Ekeventstore - Fatal编程技术网

Ios defaultCalendarForNewEvents定义为可选,但可以';t使用可选绑定检查它是否';零

Ios defaultCalendarForNewEvents定义为可选,但可以';t使用可选绑定检查它是否';零,ios,swift,swift4,eventkit,ekeventstore,Ios,Swift,Swift4,Eventkit,Ekeventstore,我正在我的应用程序中添加新功能,这是在手机上设置的默认日历中添加事件的功能。我已获得许可并准备添加事件。我检查是否存在实际的默认日历,但我发现错误: 条件绑定的初始值设定项必须具有可选类型,而不是 “EKCalendar” 现在,defaultCalendarForNewEvents是一个可选的(请参见下面的定义),使用可选绑定检查它是否为零应该是非常好的。我错过了什么 defaultCalendarForNewEventsEKEventStore.h中的定义: open var default

我正在我的应用程序中添加新功能,这是在手机上设置的默认日历中添加事件的功能。我已获得许可并准备添加事件。我检查是否存在实际的默认日历,但我发现错误:

条件绑定的初始值设定项必须具有可选类型,而不是 “EKCalendar”

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

defaultCalendarForNewEvents
EKEventStore.h中的定义:

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()
}

如果让defaultCalendar=eventStore.defaultCalendarForNewEvents{错误告诉您,
defaultCalendarForNewEvents
实际上不是可选的。可能存在一些nil合并或其他对您不可见的情况。无论如何,如果编译器告诉您它不是可选的,那么就没有必要为可选绑定而斗争。

我在wift论坛在swift.org上进行了讨论,并得到了回复。因此,根据回复,“defaultCalendarForNewEvents”在swift 3中被意外标记为非可选,并在swift 4中得到了修复。这就是为什么存在差异的原因:文档显示swift 4中的声明,但可选绑定失败,因为我在swift 3上。希望这能帮助那些同样的问题


我还被告知,由于这是一个小的更新,这个问题没有发布说明。

这没有意义,编译器不是通过查看属性声明来确定其类型吗?如果是这样,它不应该抱怨可选绑定。@Screerspeaki同意!我想我只是在想在scen后面一定发生了什么您不知道的。为错误消息和类名添加了其他格式。