具有EKEvents的PromiseKit-询问用户访问日历事件的许可

时间:2019-04-24 02:01:55

标签: swift promisekit

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")
        }

我正在通过拒绝应用程序检索日历的权限进行测试-当我授予权限时,代码会打印正确的“被调用”,但是当我拒绝应用程序权限时(触发错误,即用户拒绝了应用程序权限) ,我仍然会收到“是的”字样,当然苹果会在控制台窗口中抛出错误,无论这些错误是什么,但它并没有被承诺的“否”部分抓住。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

因此,经过更多测试后,Promise无法按以下方式工作,因为如果用户拒绝或接受对日历的访问,则对“是”返回true或false-两种情况下的错误均为零-