【问题标题】:Loading Contacts Crashing iOS 10 Swift [duplicate]加载联系人崩溃 iOS 10 Swift [重复]
【发布时间】:2016-11-26 17:25:11
【问题描述】:

我正在尝试访问和加载 iOS 10 上的所有联系人;但是,每次控制器加载时,我的应用程序都会崩溃。我刚刚将我的项目从 Swift 2 转换为 Swift 2.3(它正在使用 Swift 2)。我还在 info.plist 中添加了联系人的隐私使用,但这并没有解决问题。这是我的代码:

我从在线教程中找到了这个请求访问:

 func checkAccessStatus(completionHandler: (accessGranted: Bool) -> Void) {
    let authorizationStatus = CNContactStore.authorizationStatusForEntityType(CNEntityType.Contacts)

    switch authorizationStatus {
    case .Authorized:
        completionHandler(accessGranted: true)
    case .Denied, .NotDetermined:
        self.accessStore.requestAccessForEntityType(CNEntityType.Contacts, completionHandler: { (access, accessError) -> Void in
            if access {
                completionHandler(accessGranted: access)
            } else {
                print("access denied")
                print(accessError)
            }
        })
    default:
        completionHandler(accessGranted: false)
    }
}

我不断收到此错误: "Optional(Error Domain=CNErrorDomain Code=100 "Access Denied" UserInfo={NSLocalizedDescription=Access Denied, NSLocalizedFailureReason=此应用程序没有被授予访问联系人的权限。})"

上面的代码是发生错误的控制器中的一个sniper。我正在尝试请求访问,但它一直失败。是否需要执行其他步骤才能获得对联系人的访问权限?加载页面时,我没有收到请求许可的弹出框(即使我在 info.plist 中添加了隐私位以供联系人使用)。我还检查了隐私设置并查看我是否禁用了应用程序对联系人的访问;但是,它没有显示。感谢您的帮助,谢谢!

更新:我发现了这个问题,这似乎是一个类似的问题(虽然它是 iOS 9)here。如何删除我的 info.plist 并创建一个新的?

【问题讨论】:

  • 您在哪一行遇到崩溃?下次不要让人问你那种很简单的细节! (为什么不转换为 Swift 3?)
  • 对不起!我有点着急!我现在将更新它以更具体,我很抱歉!

标签: ios swift contacts


【解决方案1】:

checkAccessStatus 移至您的联系人控制器并重试此方法?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多