- 实现步骤-及代码
// 1. 请求授权 // 1.获取授权的状态 ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus(); // 2.判断授权状态,如果是未决定状态,才需要请求 if (status == kABAuthorizationStatusNotDetermined) { // 2.1.创建通信录对象 ABAddressBookRef addressBook = ABAddressBookCreate(); // 2.2.请求授权 ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { if (granted) { NSLog(@"授权成功"); } else { NSLog(@"授权失败"); } }); } // 2. 判断授权状态, 如果已授权, 则继续; 未授权, 则提示用户, 并返回; // 1.获取授权的状态 ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus(); // 2.如果用户已经授权 if (status != kABAuthorizationStatusAuthorized) return; // 3. 创建通讯录对象 ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL); // 4. 从通信录对象中, 获取所有的联系人 CFArrayRef peopleArray = ABAddressBookCopyArrayOfAllPeople(addressBook); // 5. 遍历所有的联系人(每一个联系人都是一条记录) CFIndex peopleCount = CFArrayGetCount(peopleArray); for (CFIndex i = 0; i < peopleCount; i++) { // 6.获取到联系人 ABRecordRef person = CFArrayGetValueAtIndex(peopleArray, i); // 7.获取姓名 NSString *lastname = (__bridge_transfer NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty); NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty); NSLog(@"%@ %@", lastname, firstName); // 8. 获取电话号码 ABMultiValueRef multiValue = ABRecordCopyValue(record, kABPersonPhoneProperty); CFIndex count = ABMultiValueGetCount(multiValue); for (int i = 0; i < count; i ++) { NSString *label = (__bridge_transfer NSString *)ABMultiValueCopyLabelAtIndex(multiValue, i); NSString *phone = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(multiValue, i); NSLog(@"%@---%@", label, phone); } CFRelease(multiValue); } 9. 释放不再使用的对象 CFRelease(peopleArray); CFRelease(addressBook);
获取通讯录-AddressBook(OC)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 前言iOS通讯录框架有AddressBook,AddressBookUI,Contacts,ContactsUI....