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

sam*_*oes 5 ekeventstore swift ios8

我在使用 Swift 时尝试在 iOS 的日历应用程序上创建新事件时遇到问题。

\n

这是我到目前为止所拥有的:

\n
func addToCal(){\n    let eventStore = EKEventStore()\n    \n    eventStore.requestAccessToEntityType(EKEntityTypeReminder) {\n        (granted: Bool, err: NSError!) in\n        if granted && !err {\n            var event:EKEvent = EKEvent(eventStore: eventStore)\n            event.title = self.eventTitle!.text\n            event.startDate = self.eventData.startDateObj\n            event.endDate = self.eventData.endDateObj\n            event.calendar = eventStore.defaultCalendarForNewEvents\n            eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)\n            println("Saved Event")\n        }\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

这是我收到的错误:

\n
Error getting default calendar for new events: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn\xe2\x80\x99t be completed. (EKCADErrorDomain error 1013.)"\n
Run Code Online (Sandbox Code Playgroud)\n

我检查了我的语法,我很确定我的语法是正确的,所以有人可以帮我找出哪里出错了吗?

\n

附加信息

\n
    \n
  • iOS 8 测试版 5
  • \n
  • Xcode 6 测试版 5
  • \n
  • 带 Retina 显示屏的 iPad Mini(真实设备)上出现问题
  • \n
\n

更新

\n

更改EKEntityTypeReminderEKEntityTypeEvent(抱歉,我的错误)实际上不会产生错误,但现在该事件甚至没有显示在日历中。granted我检查了和的输出,err并分别看到了falsenil

\n

小智 0

我认为您的主要问题是您没有提交要保存的新事件。下面的代码是我使用的,主要的区别是我的代码包含一个提交,并且允许我的错误从“nil”(如果有)更改。最后的条件仅将保存错误或保存成功的任何报告打印到调试区域。

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.")
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

——戈罗夫斯基