我在我的应用程序中集成了Contacts框架,并且该应用程序仍然有权访问用户联系人,但现在我正在寻找一种方法来删除授权,如果用户决定这样做的话。我找不到这样做的方法,有没有人有想法? 提前谢谢。
这是我的AppDelegate上的授权方法,它总是返回accessGranted = true
func requestForAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) {
let authorizationStatus = CNContactStore.authorizationStatus(for: CNEntityType.contacts)
switch authorizationStatus {
case .authorized:
completionHandler(true)
case .denied, .notDetermined:
self.contactStore.requestAccess(for: CNEntityType.contacts, completionHandler: { (access, accessError) -> Void in
if access {
completionHandler(access)
}
else {
if authorizationStatus == CNAuthorizationStatus.denied {
DispatchQueue.main.async(execute: { () -> Void in
})
}
}
})
default:
completionHandler(false)
}
}
这是我的ViewController上的代码,我在那里检查用户是否已获得授权,如果不是,则要求他们授权。
AppDelegate.getAppDelegate().requestForAccess { (accessGranted) -> Void in
if accessGranted {
self.iCloudConnected = true
self.fetchContacts()
}else{
self.iCloudConnected = false
}
self.tableView.reloadData()
}