PPGetAddressBook 0.2.8

PPGetAddressBook 0.2.8

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2016年12月

jkpang 维护。



  • jkpang

  • PPGetAddressBook对AddressBook框架(iOS9之前)和Contacts框架(iOS9之后)做了相应的封装处理;

  • 支持一句代码按照联系人姓名首字拼音A~Z排序(重点:已处理姓名所有字符的排序问题,排序更准确);

  • 支持一句代码获取原始顺序的联系人列表,未分组,可自行处理;
  • 已对号码中的"+86","-","()",空号和联系人姓名空白做了处理,不会因为数据源NULL导致程序崩溃的问题;
  • 对姓"长"、"沈"、"厦"、"地"、"冲"等多音字进行了优化处理。

新建PP-iOS学习交流群:323408051,有关PP系列封装的问题和iOS技术可以在此群讨论

简书地址 ; codeData 地址

如果您需要Swift版本,请戳: https://github.com/jkpang/PPGetAddressBookSwift

image

要求

  • iOS 7+
  • Xcode 8+

安装

1.手动安装

下载DEMO后,将子文件夹PPGetAddressBook拖入项目中,导入头文件PPGetAddressBook.h开始使用

使用方法

*注意,在iOS 10系统下必须在info.plist文件中配置获取隐私数据权限声明:兼容iOS 10:配置获取隐私数据权限声明

一、首先必须要请求用户是否授权APP访问通讯录的权限(建议在APPDeletegate.m中的didFinishLaunchingWithOptions方法中调用)

     //请求用户获取通讯录权限
    [PPGetAddressBook requestAddressBookAuthorization];

二、获取通讯录

1.获取按联系人姓名首字拼音A~Z排序(已处理姓名所有字符的排序问题),一句话搞定!

    //获取按联系人姓名首字拼音A~Z排序(已经对姓名的第二个字做了处理)
    [PPGetAddressBook getOrderAddressBook:^(NSDictionary<NSString *,NSArray *> *addressBookDict, NSArray *nameKeys) {
        //addressBookDict: 装着所有联系人的字典
        //nameKeys: A~Z拼音字母数组;
        //刷新 tableView       
        [self.tableView reloadData];
    } authorizationFailure:^{
        NSLog(@"请在iPhone的“设置-隐私-通讯录”选项中,允许PPAddressBook访问您的通讯录");
    }];

2.获取原始顺序的联系人模型,未分组,一句话搞定!

    //获取没有经过排序的联系人模型
    [PPGetAddressBook getOriginalAddressBook:^(NSArray<PPPersonModel *> *addressBookArray) {
       //addressBookArray:原始顺序的联系人模型数组

       //刷新 tableView       
        [self.tableView reloadData];
    } authorizationFailure:^{
       NSLog(@"请在iPhone的“设置-隐私-通讯录”选项中,允许PPAddressBook访问您的通讯录");
    }];

如果您有更好的实现方法,希望不吝赐教!

你的star是我持续更新的动力!

联系方式

PP-iOS学习交流群群二维码

许可证

PPGetAddressBook使用了MIT许可证,详情见LICENSE文件。