Невозможно запросить разрешение на доступ к календарю IOS в Swift 4.2 - PullRequest
0 голосов
/ 22 ноября 2018

Я пробовал предыдущие примеры запроса разрешения на добавление элементов в календарь IOS.Они не работают с Xcode 10.1 (Swift 4.2).Когда я пытаюсь скомпилировать код, я получаю сообщение об ошибке.Если я закомментирую строки, начинающиеся с «EKEventstore.requestAccess», код выполнит цикл «.not.Determined».

Ошибка: «Элемент экземпляра« requestAccess »не может использоваться для типа« EKEventStore »;Вы хотели использовать вместо этого значение этого типа? "

Может кто-нибудь найти мою ошибку, чтобы приложение IOS могло иметь разрешение на добавление событий в Календарь?

func SOGetPermissionCalendarAccess() {

    switch EKEventStore.authorizationStatus(for: .event) {

    case .authorized:
        print("Authorized")

    case .denied:
        print("Access denied")

    case .notDetermined:
        EKEventStore.requestAccess(to: .event, completion:
            {[weak self] (granted: Bool, error: Error?) -> Void in
                if granted {
                    print("Access granted")
                } else {
                    print("Access denied")
                }
        })

        print("Not Determined")
    default:
        print("Case Default")
        }

}

1 Ответ

0 голосов
/ 22 ноября 2018

Вы должны создать экземпляр хранилища событий, как показано ниже,

let eventStore = EKEventStore()

После этого вы можете сделать запрос на разрешение, как показано ниже,

switch EKEventStore.authorizationStatus(for: .event) {

        case .authorized:
            print("Authorized")

        case .denied:
            print("Access denied")

        case .notDetermined:
            eventStore.requestAccess(to: .event, completion:
                {(granted: Bool, error: Error?) -> Void in
                    if granted {
                        print("Access granted")
                    } else {
                        print("Access denied")
                    }
            })

            print("Not Determined")
        default:
            print("Case Default")
        }

Пожалуйста, обратитесь по этой ссылке для получения дополнительной информации.

...