iOS 调用系统通讯录获取姓名电话号码

iOS调用系统通讯录获取姓名电话号码

(iOS 8.0 Xcode6.3可以使用)

1、导入头文件。

#import <AddressBook/AddressBook.h>

#import <AddressBookUI/AddressBookUI.h>

2、添加协议

@interface NewAddressViewController ()<ABPeoplePickerNavigationControllerDelegate>

3、实例化

ABPeoplePickerNavigationController * vc = [[ABPeoplePickerNavigationController allocinit];

            vc.peoplePickerDelegate = self;

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


4、实现协议方法

#pragma mark -- ABPeoplePickerNavigationControllerDelegate

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

    

    ABMultiValueRef valuesRef = ABRecordCopyValue(person, kABPersonPhoneProperty);

    CFIndex index = ABMultiValueGetIndexForIdentifier(valuesRef,identifier);

    //电话号码

    CFStringRef telValue = ABMultiValueCopyValueAtIndex(valuesRef,index);

    

    //读取firstname

    //获取个人名字(可以通过以下两个方法获取名字,第一种是姓、名;第二种是通过全名)。

    //第一中方法

//    CFTypeRef firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty);

//    CFTypeRef lastName = ABRecordCopyValue(person, kABPersonLastNameProperty);

//    //

//    NSString * nameString = (__bridge NSString *)firstName;

//    //

//    NSString * lastString = (__bridge NSString *)lastName;

    //第二种方法:全名

    CFStringRef anFullName = ABRecordCopyCompositeName(person);


    [self dismissViewControllerAnimated:YES completion:^{

        self.telLabel.text = (__bridge NSString *)telValue;

//        self.nameLabel.text = [NSString stringWithFormat:@"%@%@",nameString,lastString];

        self.nameLabel.text = [NSString stringWithFormat:@"%@",anFullName];


    }];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值