2016-11-26 19 views
0

iOS 10のすべての連絡先にアクセスして読み込みしようとしています。しかし、私のアプリは、コントローラが読み込まれるたびにクラッシュします。私はちょうど私のプロジェクトをSwift 2からSwift 2.3に変換しました(それはSwift 2で動作していました)。私はまた、私のinfo.plistの連絡先のプライバシーの使用法を追加しましたが、それは問題を解決しませんでした。ここに私のコードは次のとおりです。連絡先を読み込んでいます。iOS 10をクラッシュさせます。

私がアクセスを要求するオンラインチュートリアルからこれを見つけた:

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) 
    } 
} 

私はこのエラーを取得しておいてください。 「オプション(エラードメイン= CNErrorDomainコード= 100 『アクセス』のUserInfoを拒否されました= {NSLocalizedDescription =アクセスが拒否されました、NSLocalizedFailureReason =このアプリケーションには連絡先にアクセスする権限が与えられていません}) "

上記のコードはエラーが発生しているコントローラのスニッパです。私はアクセスを要求しようとしていますが、失敗し続けます。連絡先にアクセスするために必要な追加手順はありますか?私はページをロードするときに(たとえ私が連絡先の使い方についてinfo.plistのプライバシービットを追加したとしても)許可を求めているポップアップボックスを取得していません。私はまた、プライバシー設定を確認した&私は連絡先へのアプリケーションのアクセスを無効にしていたかどうかを見て、しかし、それは表示されていません。私はどんな助けにも感謝します、ありがとう!

更新:私はこの質問を見つけました。これは、同様の問題(iOS 9ですが)のようです。hereです。 info.plistを削除して新しいものを作成するにはどうしたらいいですか?

+0

どのような行でクラッシュしますか?次回は、人々があなたにそのような非常に簡単な詳細を聞かせてはいけません! (Swift 3に変換してみませんか?) –

+0

申し訳ありません!私は少し急いでいた!私はもっ​​と具体的にそれを更新するつもりです、私の謝罪! – JD2017

答えて

0

checkAccessStatusをContact Controllerに移動し、この方法をやり直してください。

関連する問題