码迷,mamicode.com
首页 > 移动开发 > 详细

获取ios通讯录信息

时间:2015-10-08 18:03:07      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

包含相应地库之后直接调用

#import <AddressBook/AddressBook.h>

#import <AddressBookUI/AddressBookUI.h>

-(void)readAllPeoples

{

    //定义通讯录名字为addressbook

    ABAddressBookRef tmpAddressBook = nil;

    

    //根据系统版本不同,调用不同方法获取通讯录

    if ([[UIDevice currentDevice].systemVersion floatValue]>=6.0) {

        tmpAddressBook = ABAddressBookCreateWithOptions(NULL, NULL);

        dispatch_semaphore_t sema=dispatch_semaphore_create(0);

        ABAddressBookRequestAccessWithCompletion(tmpAddressBook, ^(bool greanted, CFErrorRef error){

            dispatch_semaphore_signal(sema);

        });

        dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

    }

    else

    {

        tmpAddressBook = ABAddressBookCreateWithOptions(NULL, NULL);

    }

    //取得通讯录失败

    if (tmpAddressBook==nil) {

        return ;

    };

    

    //将通讯录中的信息用数组方式读出

    NSArray* tmpPeoples = (__bridge NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);

    

    //遍历通讯录中的联系人

    for(id tmpPerson in tmpPeoples){

        

        //获取的联系人单一属性:First name

        NSString* tmpFirstName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonFirstNameProperty);

        NSLog(@"First name:%@", tmpFirstName);

        

        //获取的联系人单一属性:Last name

        NSString* tmpLastName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonLastNameProperty);

        NSLog(@"Last name:%@", tmpLastName);

        

        //获取的联系人单一属性:Nickname

        NSString* tmpNickname = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonNicknameProperty);

        NSLog(@"Nickname:%@", tmpNickname);

        

        //获取的联系人单一属性:Company name

        NSString* tmpCompanyname = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonOrganizationProperty);

        NSLog(@"Company name:%@", tmpCompanyname);

        

        //获取的联系人单一属性:Job Title

        NSString* tmpJobTitle= (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonJobTitleProperty);

        NSLog(@"Job Title:%@", tmpJobTitle);

        

        //获取的联系人单一属性:Department name

        NSString* tmpDepartmentName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonDepartmentProperty);

        NSLog(@"Department name:%@", tmpDepartmentName);

        

        //获取的联系人单一属性:Email(s)

        ABMultiValueRef tmpEmails = ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonEmailProperty);

        for(NSInteger j = 0; ABMultiValueGetCount(tmpEmails); j++)

        {

            NSString* tmpEmailIndex = (__bridge NSString*)ABMultiValueCopyValueAtIndex(tmpEmails, j);

            NSLog(@"Emails%ld:%@", (long)j, tmpEmailIndex);

        }

        CFRelease(tmpEmails);

        

        //获取的联系人单一属性:Birthday

        NSDate* tmpBirthday = (__bridge NSDate*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonBirthdayProperty);

        NSLog(@"Birthday:%@", tmpBirthday);

        

        //获取的联系人单一属性:Note

        NSString* tmpNote = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonNoteProperty);

        NSLog(@"Note:%@", tmpNote);

        

        //获取的联系人单一属性:Generic phone number

        ABMultiValueRef tmpPhones = ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonPhoneProperty);

        for(NSInteger j = 0; j < ABMultiValueGetCount(tmpPhones); j++)

        {

            NSString* tmpPhoneIndex = (__bridge NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j);

            NSLog(@"tmpPhoneIndex%ld:%@", (long)j, tmpPhoneIndex);

        }

    }

 

}

 

原文路径:http://www.devdiv.com/ios_-blog-215400-52842.html

 

获取ios通讯录信息

标签:

原文地址:http://www.cnblogs.com/h-tao/p/4861413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!