联系人框架在需要时不会请求访问

时间:2016-04-19 08:41:04

标签: ios swift

这是我到目前为止所做的:

private let contactStore = CNContactStore()

private func requestAccessForContacts() {

    switch CNContactStore.authorizationStatusForEntityType(.Contacts) {
    case .Denied, .NotDetermined:

        contactStore.requestAccessForEntityType(.Contacts, completionHandler: { access, error in

            if access {
                print("super")
            } else {
                print("problem")
            }
        })
    case .Authorized:
        print("ok")
    case .Restricted:
        print("restricted")
    }
}

problem打印在控制台上,但屏幕上没有显示任何内容,也没有访问请求。为什么呢?

1 个答案:

答案 0 :(得分:2)

您的代码有效;我能够通过首先拒绝访问联系并重新运行应用程序来复制问题。

一旦您禁止访问,后续运行应用程序将记录“问题”,而不显示任何请求窗口。

如果有人想在拒绝后再次看到此请求窗口,可以, 但是,去吧 “ 设置 ” - > “ 重置 ”并点击模拟器中的“ 重置位置和隐私 ”。

完成此操作后,下次运行应用程序时,会再次弹出一个请求窗口。