Swift 3 / Xcode 8 - CNContact [访问] <私人>

Posted

技术标签:

【中文标题】Swift 3 / Xcode 8 - CNContact [访问] <私人>【英文标题】:Swift 3 / Xcode 8 - CNContact [access] <Private> 【发布时间】:2016-07-07 08:55:47 【问题描述】:

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

var addressBookStore = CNContactStore()

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

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

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

提前致谢

【问题讨论】:

【参考方案1】:

这里建议: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)

【讨论】:

这样一个简单的解决方案。我不敢相信我错过了!非常感谢

以上是关于Swift 3 / Xcode 8 - CNContact [访问] <私人>的主要内容,如果未能解决你的问题,请参考以下文章

在 swift 3 xcode 8 中出现错误

SDWebImage 库在 swift 3 Xcode 8.0 中出现错误

Swift 3、Xcode 8 中的 UINavigationController

Xcode 8 / Swift 3 - 类型“CGColorRenderingIntent”没有成员“RenderingIntentDefault”

Xcode 8.3 不支持 Swift 2.3 [关闭]

Xcode 8 - Swift 3 - 破坏我的应用程序