8

我的代码在尝试请求访问CNContactStore. 如果这是一个测试版问题,有什么想法吗?

var addressBookStore = CNContactStore()

addressBookStore.requestAccess(for: .contacts) { (granted, error)

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

崩溃发生在这一行,甚至阻止打印错误!

提前致谢

4

1 回答 1

25

如此处建议: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)
}
于 2016-07-07T11:49:09.253 回答