关于iOS10访问通讯录崩溃问题

    iOS10出来以后  为了适配  项目整个动了很多  比如极光推送整个换了一遍  还有各种请求权限的修改和添加  简直日了狗了  不过辛亏网上大神多  一些基本的问题都有解答  但是通讯录是很坑的  因为iOS10 做了很大的改动  让我们一起来看看有哪些坑

  1.权限问题  

  iOS10之后需要在info plist文件添加新的键值对 来保证我们能访问系统的功能  如果不添加的话直接会闪退掉 

  访问通讯录的话 我们需要添加Privacy - Contacts Usage Description  后面的值为字符串  即请求获取权限时显示的请求信息  比如我们项目中添加的是 我们需要使用您的通讯录   当然其他的  比如 相册  摄像头 话筒都一样  

  2.调取通讯录的方法 

 上网搜了很久  好像没有发现有人特别将iOS10之后修改了调取通讯录的方法  所以导致我一直以为调取通讯录奔溃是因为权限问题 

 不过还好找到  iOS9 以前一直调取的是  ABPeoplePickerNavigationController  iOS9以后改为CNContactPickerViewController

并且废弃了 AddressBook  AddressBookUI框架  换为ContactsUI框架 所以当我们在iOS10  调用iOS9以下的方法时 不会显示请求权限信息 但是回调的时候会崩溃掉 


 自己写了个demo  放在github上https://github.com/DogWangWangWang/CH_GetContactInfor 如果有不明白的地方 欢迎大家下载 
 

  


  


你可能感兴趣的:(技术学习,iOS,通讯录)