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

标签 swift ios8 ekeventstore

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

这是我目前所拥有的:

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

这是我遇到的错误:

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

我检查了我的语法,我很确定我做对了,所以任何人都可以帮我找出我哪里出错了吗?

附加信息

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

更新

EKEntityTypeReminder 更改为 EKEntityTypeEvent(抱歉,我的错误)实际上不会产生错误,但现在该事件甚至不会显示在日历中。我检查了 grantederr 的输出,分别看到了 falsenil

最佳答案

我认为您的主要问题是您没有提交要保存的新事件。以下代码是我使用的代码,主要区别在于我的代码包含一个提交,如果有的话,允许将我的错误从“nil”更改为“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.")
}

希望这对您有所帮助!

-戈洛夫斯基

关于swift - 获取新事件的默认日历时出错 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25346215/

相关文章:

swift - 无需解码即可快速读取 jpeg 的高度宽度和文件大小的方法

ios - 快速在 ImageView 上创建倾斜剪切

iphone - 我可以让我的 iOS 应用程序出现在锁定屏幕的左下角吗?

ios - 本地 EKCalendar 保存没有错误,消失

ios - 查看 EkReminder 重复频率的最佳方式?

swift - Swift 中的核心数据属性重置

swift - 计算 Swift 字符串中的行数

ios8 - 在iOS8的Popover中呈现UIAlertController

swift - editActionsForRowAtIndexPath 不在带有 Xcode 7 的 iOS 8 上执行

ios - 如何从 EKEventStore 检索 3 年前的事件