iOS应用开发-获取通讯录联系人信息
安安 2018-01-16 来源 :网络 阅读 1187 评论 0

摘要:本篇IOS应用开发教程将为大家讲解IOS开发获取通讯录联系人信息,看完这篇文章会让你对IOS编程的知识点有更加清晰的理解和运用。

本篇IOS应用开发教程将为大家讲解IOS开发获取通讯录联系人信息,看完这篇文章会让你对IOS编程的知识点有更加清晰的理解和运用。

 

头文件

#import <AddressBook/AddressBook.h>#import <AddressBookUI/AddressBookUI.h>

授权

关于通讯录的授权这里不再多说了,我在上一篇中有提到:通讯录授权

 

访问通讯录

跳转到系统通讯录

- (void)jumpAddress{

    ABPeoplePickerNavigationController *peoplePickVc = [[ABPeoplePickerNavigationController alloc] init];

    peoplePickVc.peoplePickerDelegate = self;

    [self presentViewController:peoplePickVc animated:YES completion:nil];

}

添加代理

@interface ViewController ()<ABPeoplePickerNavigationControllerDelegate, UINavigationControllerDelegate>

代理方法

///取消选择

- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{

    

}

 

///实现此方法后,下面的代理方法不会实现(此方法是点击通讯录列表中名字直接调用并dismiss)

- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person {

    //获取当前联系人名字

    NSString *firstName=(__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));

    

    //获取当前联系人姓氏

    NSString *lastName=(__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty));

    

    //获取当前联系人的电话 数组

    NSMutableArray *phoneArray = [[NSMutableArray alloc]init];

    

    ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);

    for (NSInteger j=0; j<ABMultiValueGetCount(phones); j++) {

        NSString *phone = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phones, j));

        NSLog(@"phone=%@", phone);

        [phoneArray addObject:phone];

    }

    //获取当前联系人的邮箱 注意是数组

    NSMutableArray *emailArray = [[NSMutableArray alloc]init];

    ABMultiValueRef emails= ABRecordCopyValue(person, kABPersonEmailProperty);

    for (NSInteger j=0; j<ABMultiValueGetCount(emails); j++) {

        NSString *email = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(emails, j));

        NSLog(@"email=%@", email);

        [emailArray addObject:email];

    }

    //获取当前联系人中间名

    NSString *middleName=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonMiddleNameProperty));

    //获取当前联系人的名字前缀

    NSString *prefix=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonPrefixProperty));

    

    //获取当前联系人的名字后缀

    NSString *suffix=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonSuffixProperty));

    

    //获取当前联系人的昵称

    NSString *nickName=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonNicknameProperty));

    

    //获取当前联系人的名字拼音

    NSString *firstNamePhoneic=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty));

    

    //获取当前联系人的姓氏拼音

    NSString *lastNamePhoneic=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty));

    

    //获取当前联系人的中间名拼音

    NSString *middleNamePhoneic=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty));

    

    //获取当前联系人的公司

    NSString *organization=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonOrganizationProperty));

    

    //获取当前联系人的职位

    NSString *job=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonJobTitleProperty));

    

    //获取当前联系人的部门

    NSString *department=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonDepartmentProperty));

    

    //获取当前联系人的生日//    NSString *birthday=(__bridge NSDate*)(ABRecordCopyValue(person, kABPersonBirthdayProperty));

    

    //获取当前联系人的备注

    NSString *notes=(__bridge NSString*)(ABRecordCopyValue(person, kABPersonNoteProperty));

    

    //获取创建当前联系人的时间 注意是NSDate

    NSDate *creatTime=(__bridge NSDate*)(ABRecordCopyValue(person, kABPersonCreationDateProperty));

    

    //获取最近修改当前联系人的时间

    NSDate *alterTime=(__bridge NSDate*)(ABRecordCopyValue(person, kABPersonModificationDateProperty));

    

    

    //获取当前联系人头像图片

    NSData *userImage=(__bridge NSData*)(ABPersonCopyImageData(person));

    

    //获取当前联系人纪念日

    NSMutableArray *dateArr = [[NSMutableArray alloc]init];

    ABMultiValueRef dates= ABRecordCopyValue(person, kABPersonDateProperty);

    for (NSInteger j=0; j<ABMultiValueGetCount(dates); j++) {

        //获取纪念日日期

        NSDate *data =(__bridge NSDate*)(ABMultiValueCopyValueAtIndex(dates, j));

        //获取纪念日名称

        NSString *str =(__bridge NSString*)(ABMultiValueCopyLabelAtIndex(dates, j));

    }

}

 

 

///实现此方法后,上面的代理方法不会实现(此方法是进入通讯录详情后点击名称或电话等调用并dismiss)

- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier NS_AVAILABLE_IOS(8_0){

 

}

 

注:上面两个选择回调代理实现一个就可以

 

相关借鉴://www.jb51.net/article/95500.htm


希望这篇文章可以帮助到你。总之,同学们,你想要的职坐标IOS频道都能找到!


本文由 @安安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程