zoukankan      html  css  js  c++  java
  • 获取ios通讯录信息

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

    #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

     

  • 相关阅读:
    js用currentStyle和getComputedStyle获取css样式(非行间)
    XMLHttpRequest Level 2 使用指南
    image-set实现Retina屏幕下图片显示[转载]
    Png的秘密
    css清除&闭合浮动
    2016学习计划
    提高性能及操作硬件的能力
    新兵易学,老兵易用----C++(C++11的学习整理---如何减少代码量,加强代码的可读性)
    CV限制符--C++
    能ping通网络,也正常连接,就是打不开网页,无法访问网络
  • 原文地址:https://www.cnblogs.com/h-tao/p/4861413.html
Copyright © 2011-2022 走看看