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

获取ios通讯录信息

2015-10-08 16:26 260 查看
包含相应地库之后直接调用

#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: