带有 EKEvents 的 PromiseKit - 询问用户是否允许访问日历事件

PromiseKit with EKEvents - asking user's permission to access calendar events

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

我正在通过拒绝应用程序检索日历的权限进行测试 - 当我授予权限时,代码会打印正确的 "yes was called" 但是当我拒绝应用程序权限时(触发错误,即用户拒绝了该应用程序许可),我仍然得到 "yes was called",当然还有控制台中的错误 window,Apple 无论如何都会抛出 - 但它没有被承诺的 'no' 部分捕获。

感谢任何帮助

因此,经过更多测试后,Promise 无法按如下方式工作,因为如果用户拒绝或接受对日历的访问,它 returns 'yes' 上的 true 或 false - 在任何一种情况下错误都是零 -