Swift 3/Xcode 8 - CNContact [access] <Private>

Inf*_*Pod 8 ios swift cncontactstore swift3 xcode8

我的代码一旦尝试请求访问就崩溃了CNContactStore.如果这是一个beta问题,有什么想法吗?

var addressBookStore = CNContactStore()

addressBookStore.requestAccess(for: .contacts) { (granted, error)
Run Code Online (Sandbox Code Playgroud)

//此控制台消息在崩溃时被触发 - Messenger [836:1175155] [access] private

崩溃发生在这条线上甚至无法打印错误!

提前致谢

Ash*_*kad 24

正如这里建议的那样:https://developer.apple.com/reference/contacts

重要

在iOS 10.0上或之后链接的iOS应用程序必须在其Info.plist文件中包含其需要访问的数据类型的使用说明密钥,否则将崩溃.要专门访问联系人数据,它必须包含NSContactsUsageDescription.

您必须在Info.plist文件中添加NSContactsUsageDescription键

在此输入图像描述

然后你会得到授权对话框.没有这个关键应用程序将崩溃.

在此输入图像描述

let addressBookStore = CNContactStore()

addressBookStore.requestAccess(for: CNEntityType.contacts) { (isGranted, error) in
    print(isGranted)
    print(error)
}
Run Code Online (Sandbox Code Playgroud)

  • 这么简单的解决方案.我不敢相信我错过了!非常感谢 (3认同)