您的位置:首页 > 移动开发 > IOS开发

iOS6.0下获取通讯录用户列表

2012-10-21 22:06 447 查看
自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表。而且ABAddressBookRef的初始化工作也由ABAddressBookCreate函数转变为ABAddressBookCreateWithOptions函数。下面代码是兼容之前版本的获取通讯录用户列表方法。

view
source

print?

01
ABAddressBookRef
addressBook = nil;
02
 
03
if
 
([[UIDevice
currentDevice].systemVersion floatValue] >= 6.0)
04
{
05
    
addressBook
= ABAddressBookCreateWithOptions(NULL, NULL);
06
 
07
    
//等待同意后向下执行
08
    
dispatch_semaphore_t
sema = dispatch_semaphore_create(0);
09
    
ABAddressBookRequestAccessWithCompletion(addressBook,
^(
bool
 
granted,
CFErrorRef error)
10
    
{
11
        
dispatch_semaphore_signal(sema);
12
    
});
13
         
 
14
    
dispatch_semaphore_wait(sema,
DISPATCH_TIME_FOREVER);
15
    
dispatch_release(sema);
16
}
17
else
18
{
19
    
addressBook
= ABAddressBookCreate();
20
}
21
 
22
NSArray
*personArray = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息