iOS通过app读取通讯录信息

iOS通过app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和AddressBook两个包,并且引入头文件
#import 
#import 
具体实现如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
-( 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);
         dispatch_release(sema);
     }
     else
     {
         tmpAddressBook =ABAddressBookCreate();
     }
     //取得通讯录失败
     if (tmpAddressBook==nil) {
         return ;
     };
     
     //将通讯录中的信息用数组方式读出
     NSArray* tmpPeoples = (NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);
     
     //遍历通讯录中的联系人
     for (id tmpPerson in tmpPeoples){
         
         //获取的联系人单一属性:First name
         NSString* tmpFirstName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonFirstNameProperty);
         NSLog(@ "First name:%@" , tmpFirstName);
         [tmpFirstName release];
         
         //获取的联系人单一属性:Last name
         NSString* tmpLastName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonLastNameProperty);
         NSLog(@ "Last name:%@" , tmpLastName);
         [tmpLastName release];
         
         //获取的联系人单一属性:Nickname
         NSString* tmpNickname = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonNicknameProperty);
         NSLog(@ "Nickname:%@" , tmpNickname);
         [tmpNickname release];
         
         //获取的联系人单一属性:Company name
         NSString* tmpCompanyname = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonOrganizationProperty);
         NSLog(@ "Company name:%@" , tmpCompanyname);
         [tmpCompanyname release];
         
         //获取的联系人单一属性:Job Title
         NSString* tmpJobTitle= (NSString*)ABRecordCopyValue(tmpPerson, kABPersonJobTitleProperty);
         NSLog(@ "Job Title:%@" , tmpJobTitle);
         [tmpJobTitle release];
         
         //获取的联系人单一属性:Department name
         NSString* tmpDepartmentName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonDepartmentProperty);
         NSLog(@ "Department name:%@" , tmpDepartmentName);
         [tmpDepartmentName release];
         
         //获取的联系人单一属性:Email(s)
         ABMultiValueRef tmpEmails = ABRecordCopyValue(tmpPerson, kABPersonEmailProperty);
         for (NSInteger j = 0 ; ABMultiValueGetCount(tmpEmails); j++)
         {
             NSString* tmpEmailIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpEmails, j);
             NSLog(@ "Emails%d:%@" , j, tmpEmailIndex);
             [tmpEmailIndex release];
         }
         CFRelease(tmpEmails);
         
         //获取的联系人单一属性:Birthday
         NSDate* tmpBirthday = (NSDate*)ABRecordCopyValue(tmpPerson, kABPersonBirthdayProperty);
         NSLog(@ "Birthday:%@" , tmpBirthday);
         [tmpBirthday release];
         
         //获取的联系人单一属性:Note
         NSString* tmpNote = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonNoteProperty);
         NSLog(@ "Note:%@" , tmpNote);
         [tmpNote release];
         
         //获取的联系人单一属性:Generic phone number
         ABMultiValueRef tmpPhones = ABRecordCopyValue(tmpPerson, kABPersonPhoneProperty);
         for (NSInteger j = 0 ; j < ABMultiValueGetCount(tmpPhones); j++)
         {
             NSString* tmpPhoneIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j);
             NSLog(@ "tmpPhoneIndex%d:%@" , j, tmpPhoneIndex);
             [tmpPhoneIndex release];
         }
         CFRelease(tmpPhones);
     }
     
     //释放内存
     [tmpPeoples release];
     CFRelease(tmpAddressBook);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值