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")
}
我正在通过拒绝应用程序检索日历的权限进行测试-当我授予权限时,代码会打印正确的“被调用”,但是当我拒绝应用程序权限时(触发错误,即用户拒绝了应用程序权限) ,我仍然会收到“是的”字样,当然苹果会在控制台窗口中抛出错误,无论这些错误是什么,但它并没有被承诺的“否”部分抓住。
感谢您的帮助
答案 0 :(得分:0)
因此,经过更多测试后,Promise无法按以下方式工作,因为如果用户拒绝或接受对日历的访问,则对“是”返回true或false-两种情况下的错误均为零-