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

8

当我的代码尝试请求访问CNContactStore时,它会立即崩溃。你觉得这是否与beta版有关?

var addressBookStore = CNContactStore()

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

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

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

提前致谢。

1个回答

25
根据此处建议:https://developer.apple.com/reference/contacts 重要提示 在iOS 10.0及之后的版本中链接的iOS应用程序必须在其Info.plist文件中包含所需访问数据类型的使用说明键,否则将会崩溃。 要特定地访问联系人数据,它必须包括NSContactsUsageDescription。
您需要在Info.plist文件中添加NSContactsUsageDescription密钥 enter image description here 然后你会得到授权对话框。 没有此密钥,应用程序将崩溃。 enter image description here
let addressBookStore = CNContactStore()

addressBookStore.requestAccess(for: CNEntityType.contacts) { (isGranted, error) in
    print(isGranted)
    print(error)
}

3
这么简单的解决方案,我没想到!非常感谢。 - knappsimon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接