ios - EKCADErrorDomain 使用 calendarWithIdentifier

标签 ios iphone ios8 ekeventstore

在我的 iOS 应用程序中,我曾经使用以下方法访问日历:

EKCalendar* cal = [eventStore calendarWithIdentifier:[calendarIDs objectAtIndex:i]];

通过以下方式向用户请求权限:

eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted,NSError* error){}

现在这在 iOS 7 上工作正常,但在 iOS 8 上我每次调用方法 calendarWithIdentfier 时都会收到以下错误:

Error getting shared calendar invitations for entity types 3 from daemon: 
Error Domain=EKCADErrorDomain Code=1013 
"The operation couldn’t be completed. (EKCADErrorDomain error 1013.)"

我可以毫无问题地写\读日历,但我不明白为什么会引发此异常。 我已经尝试了这里提出的一些方法,但在这种情况下似乎都不起作用。

最佳答案

我也被同样愚蠢的事情难住了。

我只是遍历了一组日历并根据标识符进行匹配。它并不优雅,但它可以工作,而且普通用户可能只有不到 10 个日历,所以......哦好吧......

这是我在 swift 中的解决方法

func createEvent(){
    var event = EKEvent(eventStore: self.eventStore)
    var calendar : EKCalendar!
    let calendars : [EKCalendar] = self.eventStore.calendarsForEntityType(EKEntityTypeEvent) as [EKCalendar]

    for aCal in calendars
    {
        if(aCal.calendarIdentifier == self.calendarIdentifier)
        {
            calendar = aCal
            break
        }
    } ...continue to do stuff to events....

}

关于ios - EKCADErrorDomain 使用 calendarWithIdentifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25974555/

相关文章:

ios - 当存在重叠的 CLRegion 时,地理围栏如何表现

ios - 到目前为止字符串的正确格式?

cocoa - 将变量插入 NSMutableArray 对象

objective-c - UIAlertController 中的选择器 presentViewController 没有已知的类方法

iphone - iOS - UIButton 的文本在按下时被设置回 Nib 设置值

ios - UIScrollView 弹回来

iphone - 不能再使用带有 XCode 的 iPhone 进行测试,iPhone OS 是较新的版本

iphone - 如何检测 iPhone OS 设备是否具有接近传感器?

sprite-kit - 在 Xcode 6 中内置 Sprite Kit 关卡设计器

ios - 我如何判断 Springs 和 Struts 应用程序是否在 iPhone 6 模拟器中缩放?