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

IOS 获取系统通讯录

时间:2014-10-21 16:50:12      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   sp   

进入正题  获取系统通讯录,不想多讲,留下链接http://my.oschina.net/joanfen/blog/140146

通常做法:

首先创建一个ABAddressBookRef类的对象addressBooks,然后获取系统权限,

获取权限的代码:

// 获取系统权限,并获得通讯录内容存入addressBooks。
    ABAddressBookRef addressBooks = nil;
    addressBooks = ABAddressBookCreateWithOptions(NULL, NULL);
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    
    ABAddressBookRequestAccessWithCompletion(addressBooks, ^(bool granted, CFErrorRef error){
        dispatch_semaphore_signal(sema);
    });
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    dispatch_release(sema);
    
    // 获取通讯录中的所有人
    CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBooks);

然后创建一个CFArrayRef类的对象allPerson,通过ABAddressBookCopyArrayOfAllPeople(addressBooks)接受adressBooks。

然后在创建一个ABRecordRef类的对象person,但其实他并不是一个真正包含通讯录信息的类,这个ABRecordRef只是一条记录而已。

下一步通过创建的person对象,利用方法:

AB_EXTERN CFTypeRef ABRecordCopyValue(ABRecordRef record, ABPropertyID property);

想要获取什么信息,property就写ABPropertyID这个类型的变量,其实ABPropertyID是一个int32_t类型的变量。

 

IOS 获取系统通讯录

标签:style   blog   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/chaiwentao/p/4040451.html

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