简体   繁体   English

获取新事件的默认日历时出错 - Swift

[英]Error Getting Default Calendar For New Events - Swift

I encountered an issue trying to create a new event on iOS's Calendar application while using Swift. 我在使用Swift时尝试在iOS的日历应用程序上创建新事件时遇到了问题。

This is what I have so far: 这是我到目前为止:

func addToCal(){
    let eventStore = EKEventStore()

    eventStore.requestAccessToEntityType(EKEntityTypeReminder) {
        (granted: Bool, err: NSError!) in
        if granted && !err {
            var event:EKEvent = EKEvent(eventStore: eventStore)
            event.title = self.eventTitle!.text
            event.startDate = self.eventData.startDateObj
            event.endDate = self.eventData.endDateObj
            event.calendar = eventStore.defaultCalendarForNewEvents
            eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)
            println("Saved Event")
        }
    }

This is the error that I'm getting: 这是我得到的错误:

Error getting default calendar for new events: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)"

I checked my syntax and I'm pretty sure I got it right, so can anyone help me figure out where I'm going wrong? 我检查了我的语法,我很确定我做对了,所以有人能帮我弄清楚我哪里出错了吗?

Additional Information 附加信息

  • iOS 8 Beta 5 iOS 8 Beta 5
  • Xcode 6 Beta 5 Xcode 6 Beta 5
  • Issue occurs on iPad Mini w/ Retina Display (real device) iPad Mini带Retina显示屏(真实设备)出现问题

Update 更新

Changing EKEntityTypeReminder to EKEntityTypeEvent (Sorry, my mistake) actually doesn't produce an error, but now the event doesn't even show up in Calendar. EKEntityTypeReminder更改为EKEntityTypeEvent (对不起,我的错误)实际上不会产生错误,但现在事件甚至没有显示在日历中。 I checked the outputs of granted and err and I see false and nil , respectively. 我检查了grantederr的输出,我分别看到falsenil

I think your main problem was that you weren't committing the new event to be saved. 我认为你的主要问题是你没有提交要保存的新事件。 The following code is what I use, and the prime difference is that my code includes a commit and allows my error to be changed from 'nil' if there is one. 以下代码是我使用的,主要区别在于我的代码包含一个提交,并允许我的错误从'nil'更改(如果有的话)。 The conditional at the end just prints any reports of save errors or save successes to the Debug Area. 最后的条件只打印任何保存错误报告或保存成功到调试区域。

let eventStore = EKEventStore()
let event = EKEvent(eventStore: eventStore)

event.title = "Your Event Title Here" // Sets event's title
event.startDate = NSDate() // Sets event's start date
event.endDate = event.startDate.dateByAddingTimeInterval(20000) // Sets event's end date
event.calendar = eventStore.defaultCalendarForNewEvents // Selects default calendar

var saveError : NSError? = nil // Initially sets errors to nil
eventStore.saveEvent(event, span: EKSpanThisEvent, commit: true, error: &saveError) // Commits changes and allows saveEvent to change error from nil 

//// Following checks for errors and prints result to Debug Area ////
if saveError != nil {
    println("Saving event to Calendar failed with error: \(saveError!)")
} else {
    println("Successfully saved '\(event.title)' to '\(event.calendar.title)' calendar.")
}

Hope this helps! 希望这可以帮助!

-Gorowski -Gorowski

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM