Подтвердить что ты не робот

EKCADErrorDomain с использованием calendarWithIdentifier

В моем приложении 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.)"

Я могу писать\читать календарь без проблем, но я не понимаю, почему это исключение создано. Я попробовал предложенный здесь метод, но ни один из них, похоже, не работает в этом случае.

4b9b3361

Ответ 1

Я тоже в тупике на ту же глупость.

Я просто зациклился на массиве календарей и сопоставил их с идентификатором. Он не изящный, но он работает, и у обычного пользователя, вероятно, есть менее 10 календарей, поэтому... ну, хорошо..

здесь мой обход в быстрой

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....

}