- //读取所有联系人
-
- -(void)ReadAllPeoples
-
- {
-
- //取得本地通信录名柄
-
- 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);
-
- }
解释下代码:由于ios6.0系统的升级,对客户隐私有了一个较大的提示。
|