Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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 获取默认日历时出错,仅第一次出现,但之后效果良好_Ios_Swift_Eventkit - Fatal编程技术网

Ios 获取默认日历时出错,仅第一次出现,但之后效果良好

Ios 获取默认日历时出错,仅第一次出现,但之后效果良好,ios,swift,eventkit,Ios,Swift,Eventkit,我已经编写了创建事件的代码。 代码非常简单: let eventStore : EKEventStore = EKEventStore() eventStore.requestAccess(to: .event, completion: { granted, error in if (granted) && (error == nil) { print("granted \(grant

我已经编写了创建事件的代码。 代码非常简单:

    let eventStore : EKEventStore = EKEventStore()
    eventStore.requestAccess(to: .event, completion: {
            granted, error in
            if (granted) && (error == nil) {
                print("granted \(granted)")
                print("error  \(String(describing: error))")

            let event:EKEvent = EKEvent(eventStore: eventStore)
            event.title = title
            event.startDate = startDate
            event.endDate = endDate
            event.notes = "Lecture"
            event.calendar = eventStore.defaultCalendarForNewEvents
            //                eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)
            guard ((try? eventStore.save(event, span: EKSpan.thisEvent, commit: true)) != nil)else{
                print("error  saving event")
                completion(false)
                return
            }
            print("Saved Event")
        }}
当代码第一次运行时,会出现以下错误:

[EventKit]获取新事件的默认日历时出错:错误域=EkCaderRordDomain代码=1019”(null) 2018-05-18 00:18:16.586150+0500 SevimFahrschuleMobile[11413:3650672][EventKit]未提供对象ID。不会发现对象是否存在

但当我再次运行这段代码时,它是有效的。 我不明白。 这里有类似的问题,但解决方案是获得提醒授权,然后保存事件,即

eventStore.requestAccess(to: .reminder) { (<#Bool#>, <#Error?#>) in
        <#code#>
    }
eventStore.requestAccess(到:。提醒){(,)在中
}
这听起来完全不合逻辑

如果你发现第一次失败的原因,请告诉我。
谢谢

Info.plist中添加以下内容:

NSCalendarsUsageDescription
NSRemindersUsageDescription


如果这是问题所在,那么代码第二次将无法工作。我已经添加了NSCalendarsUsageDescription,并且由于我没有使用提醒,因此不需要其他提醒,否则xcode将崩溃。嘿,您找到解决方案了吗?