美文网首页
获取通讯录-AddressBook

获取通讯录-AddressBook

作者: 遇见灬最美的你 | 来源:发表于2016-11-29 18:15 被阅读14次

    获取系统的通讯录,自定义界面

    #import "ViewController.h"
    #import <AddressBook/AddressBook.h>
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        [self getAuthor];
    }
    
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        
        if (ABAddressBookGetAuthorizationStatus() != kABAuthorizationStatusAuthorized) {
            return;
        }
        
        ABAddressBookRef bookRef = ABAddressBookCreate();
        CFArrayRef array = ABAddressBookCopyArrayOfAllPeople(bookRef);
        
        CFIndex count = CFArrayGetCount(array);
        
        //遍历所有人
        for (int index = 0; index < count; index++) {
            ABRecordRef recordRef = CFArrayGetValueAtIndex(array, index);
            
            NSString * firstName = (__bridge_transfer NSString *)ABRecordCopyValue(recordRef, kABPersonFirstNameProperty);
            
            NSString * lastName = (__bridge_transfer NSString *)ABRecordCopyValue(recordRef, kABPersonLastNameProperty);
            
    //        NSLog(@"%@---%@",firstName,lastName);
            NSLog(@"%@",lastName);
    
            
            
            // 获取电话号码
            ABMultiValueRef multiValue = ABRecordCopyValue(recordRef, 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);
        }
        CFRelease(bookRef);
        CFRelease(array);
    }
    - (void)getAuthor{
        
        if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined){
            
            ABAddressBookRef bookRef = ABAddressBookCreate();
            ABAddressBookRequestAccessWithCompletion(bookRef, ^(bool granted, CFErrorRef error) {
                
                if (granted) {
                    NSLog(@"授权成功!");
                }
                else
                {
                    NSLog(@"授权失败!");
                }
                
            });
        }
        
        
        //    kABAuthorizationStatusNotDetermined = 0,    // deprecated, use CNAuthorizationStatusNotDetermined
        //    kABAuthorizationStatusRestricted,           // deprecated, use CNAuthorizationStatusRestricted
        //    kABAuthorizationStatusDenied,               // deprecated, use CNAuthorizationStatusDenied
        //    kABAuthorizationStatusAuthorized
    }
    @end
    

    相关文章

      网友评论

          本文标题:获取通讯录-AddressBook

          本文链接:https://www.haomeiwen.com/subject/dfczpttx.html