PromiseKit с EKEvents - запрос разрешения пользователя на доступ к событиям календаря - PullRequest
1 голос
/ 24 апреля 2019

Впервые в PromiseKit, поэтому я хочу попробовать его с асинхронным запросом, чтобы получить разрешение пользователя на получение событий календаря.Этот простой пример - только начало, и оттуда будет цепочка, но я не могу заставить работать первую часть.

Вот определение обещания:

class func retrieveCalendarPermission() -> Promise<Bool> {
        return Promise {seal in
            EKEventStore().requestAccess(to: .event) {yes, no in
                seal.resolve(yes, no)
            }
        }
    }

и здесьэто реализовано:

MyClass.retrieveCalendarPermission().done {yes in
            print("yes was called")
            }.catch {error in
                print ("no was called")
        }

Я тестирую, отказывая приложению в разрешении на получение календарей - когда я даю разрешение, код печатает правильное «да, было вызвано», но когда я отказываю в разрешении приложения (длявызвать ошибку, т. е. пользователь отказал в разрешении приложению), я все еще получаю «да, был вызван» и, конечно же, ошибки в окне консоли, которые Apple выдает независимо - но это не попадает в часть «нет» обещания.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 26 апреля 2019

Таким образом, после еще большего тестирования Promise не работает следующим образом, потому что, если пользователь отказывает или принимает доступ к календарю, он возвращает true или false на «yes» - ошибка равна nil в любом случае -

...