获取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
#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
相关文章推荐
- iOS 多线程笔记_( 1 )
- IOS 创建动画提示框
- iOS 真机证书设置
- ios xmpp+openfire 群聊
- iOS常用开发工具
- iOS开源项目分享
- Nagios + cacti监控系统
- NSTimer - 1
- iOS集成分享--友盟
- iOS-textfile属性
- iOS纯代码设置navigationBar透明
- IOS字体详解
- IOS开发:Paros抓包工具的使用
- IOS学习之截屏
- iOS---高效编程秘诀—坚持编程习惯
- ios项目icon和default图片命名规则
- IOS中KVO的概念
- 适配iOS 8备忘录 开始启动
- IOS打开pdf文件
- iOS 二维码的制作(libqrencode)