关闭

获取手机通讯录

标签: OCRunTime获取手机通讯录
485人阅读 评论(0) 收藏 举报
分类:

获取手机联系人和通讯录是比较常见的功能,由于iOS8之后获取的方法有所变化,使得获取时方法的兼容性变的并不那么友好,本文对获取单个联系人和完整通讯录的方法进行了简单的封装,用于选择单个联系人和获取通讯录。

注:本文中的方法只针对iOS7.0之后进行兼容,同时需要注意的是除非有特殊需求,否则不要轻易隐性获取用户的通讯录,更不能泄漏用户的个人信息。

1)为了保持实现功能的独立性,避免不必要的外部依赖,我们为UIWindow创建一个Category来现实获取应用中当前正在显示的控制器,然后用该控制器来present出来ABPeoplePickerNavigationController对象。主要实现如下,通过简单递归来查找当前正在显示的控制器。


2)在工程中引入AddressBook.framework和AddressBookUI.framework两个系统框架和相关头文件,创建继承于NSObject的AddressBookManager的通讯录管理类。

定义以下枚举类型,用以表示返回的状态;


定义返回回调函数


其中code代表返回的状态,response代表操作的返回数据结果。

定义两个类方法,分别用于选个单个联系人和整个通讯录


3)获取单个联系人的方法实现


在iOS7中需要实现的代理方法


在iOS8_OR_LATER中需要实现以下代理方法:


获取完整通讯录的方法实现


想要获取详细的实现细节,可以点击下载。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7259次
    • 积分:249
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:1篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论