带有 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 - 在任何一种情况下错误都是零 -
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 - 在任何一种情况下错误都是零 -