Ошибка Использование неразрешенного идентификатора «EKEntityTypeEvent» при попытке доступа к календарю

Я пытаюсь получить доступ к календарям пользователя через EventKit с помощью Swift 2. Копаясь в Интернете, я нашел несколько примеры, показывающие реализации, аналогичные этому ответу на другой SO вопрос.

Ошибка, которую я продолжаю нажимать,

Использование неразрешенного идентификатора «EKEntityTypeEvent»

На мой взглядDidLoad() -

let eventStore = EKEventStore()

switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeEvent) {        
case .Authorized:
    insertEvent(eventStore)
case .Denied:
    print("Access denied")
case .NotDetermined:
    eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion:
        {[weak self] (granted: Bool, error: NSError!) -> Void in
            if granted {
                self!.insertEvent(eventStore)
            } else {
                print("Access denied")
            }
        })
default:
    print("Case Default")
}

Любые идеи по этой ошибке?

Я использую El Capitan/XCode 7 Beta 3.


person Emile    schedule 18.07.2015    source источник
comment
В данный момент у меня нет доступа к Xcode 7, но я предполагаю, что EKEntityTypeEvent должно быть .Event.   -  person Martin R    schedule 18.07.2015
comment
@MartinR спасибо за комментарий. Не могли бы вы уточнить, что вы имеете в виду?   -  person Emile    schedule 18.07.2015
comment
Он говорит, что вы должны писать .Event вместо EKEntityTypeEvent.   -  person luk2302    schedule 18.07.2015
comment
Попался - это возвращается Не удалось найти участника «Событие»   -  person Emile    schedule 18.07.2015
comment
обратите внимание на . впереди!?   -  person luk2302    schedule 18.07.2015
comment
@ luk2302 да, я включил .   -  person Emile    schedule 18.07.2015
comment
ладно, тогда ты должен использовать EKEntityType.Event по какой-то причине...   -  person luk2302    schedule 18.07.2015


Ответы (1)


Хорошо, здесь в основном две ошибки — первая уже обсуждалась в комментариях.

Во-первых: используйте .Event или EKEntityType.Event вместо EKEntityTypeEvent.

Второе: измените объявление обработчика завершения, чтобы оно принимало NSError? вместо NSError!, потому что фактический обработчик завершения определяется таким образом.

person luk2302    schedule 18.07.2015
comment
requestAccessToEntityType должен правильно запускать запрос на доступ к событиям календаря? Пока он компилируется, уведомление о запросе не появляется. Мысли? - person Emile; 19.07.2015
comment
@ Эмиль, понятия не имею, извините: / возможно, вы захотите задать другой вопрос по этой проблеме ... - person luk2302; 19.07.2015