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 如果有不明白的地方 欢迎大家下载