1.PPGetAddressBook对AddressBook框架(iOS9之前)和Contacts框架(iOS9之后)做了对应的封装处理;
2.支持获取按联系人姓名首字拼音A~Z排序(重点:已经对姓名的第二个字做了处理,排序更准确!);
3.支持获取原始顺序的联系人,未分组,可自行处理.
Github上为最新版本,有详细介绍,会持续更新! https://github.com/jkpang/PPGetAddressBook
- 一、首先必须要请求用户是否授权APP访问通讯录的权限(建议在APPDeletegate.m中的didFinishLaunchingWithOptions方法中调用)
- //请求用户获取通讯录权限
- [PPGetAddressBook requestAddressBookAuthorization];
- 二、获取通讯录
- 1.获取按联系人姓名首字拼音A~Z排序(已经对姓名的第二个字做了处理),一句话搞定!
- [PPGetAddressBook getAddressBook:^(NSDictionary<NSString *,NSArray *> *addressBookDict, NSArray *peopleNameKey) {
- //装着所有联系人的字典
- self.contactPeopleDict = addressBookDict;
- //联系人分组按拼音分组的Key值
- self.keys = peopleNameKey;
- }];
- 2.获取原始顺序的联系人模型,未分组,一句话搞定!
- self.dataSource = [NSMutableArray array];
- [PPAddressBookHandle getAddressBookDataSource:^(PPPersonModel *model) {
- [self.dataSource addObject:model];
- }];
来源: https://www.oschina.net/code/snippet_2834845_58754