iOS之获取手机通讯录

#import "ViewController.h"

#import <ContactsUI/ContactsUI.h>//导入的头文件,iOS9之前是<AddressBookUI/AddressBookUI.h>


//#import <AddressBookUI/AddressBookUI.h>


@interface ViewController ()<CNContactPickerDelegate>


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

}


#pragma mark 点击屏幕来显示联系人界面

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    //1. 创建联系人选择控制器

    CNContactPickerViewController *picker = [CNContactPickerViewControllernew];

    

    //2. 设置代理 -->获取数据

    picker.delegate =self;

    

    //3. 模态弹出联系人选择控制器

    [selfpresentViewController:pickeranimated:YEScompletion:nil];

}



/**

 如果实现了多选联系人,单选联系人就失效

 */


//#pragma mark 选中单个联系人的时候会调用

//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact

//{

//    //获取联系人的电话和姓名

//    //1. 获取姓名

//    //

//    NSLog(@"%@", contact.givenName);

//    //

//    NSLog(@"%@", contact.familyName);

//    

//    //2. 获取电话

//    for (CNLabeledValue *labeledValue in contact.phoneNumbers) {

//        NSLog(@"label: %@", labeledValue.label);

//        

//        //ValueType == CNPhoneNumber

//        CNPhoneNumber *phoneNumber = labeledValue.value;

//        

//        NSLog(@"value: %@", phoneNumber.stringValue);

//    }

//    

//}


//只有单独实现下面这个方法时,才会跳到通讯录个人详细页面

#pragma mark 选中单个联系人的属性的时候会调用

- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty

{

self.phonenum.text=contactProperty.value[@"digits"];//手机号码


    NSLog(@"单个联系人属性选择");

//输出结果 :单个联系人属性选择--<CNContactProperty: 0x170423fc0: contact identifier=4AA82249-D061-4FCD-BBE3-EF130F394639, contact name=m , key=phoneNumbers, identifier=747CC6B9-9E77-48B2-8E6C-322A0B1619DE, value=<CNPhoneNumber: 0x174421680: countryCode=cn, digits=15805508133>>

}


//#pragma mark 选中多个联系人的时候回调用

//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact *> *)contacts

//{

//    //CNContact 是联系人的类

//    for (CNContact *contact in contacts) {

//        //1. 获取姓名

//        //

//        NSLog(@"01-%@", contact.givenName);

//        //

//        NSLog(@"02-%@", contact.familyName);

//        

//        //2. 获取电话

//        for (CNLabeledValue *labeledValue in contact.phoneNumbers) {

//            NSLog(@"03-label表示电话的类型(是手机还是办公电话): %@", labeledValue.label);

//            

//            //ValueType == CNPhoneNumber

//            CNPhoneNumber *phoneNumber = labeledValue.value;

//            

//            NSLog(@"04-value: %@", phoneNumber.stringValue);

//        }

//    }

//}

//

//

//#pragma mark 选中联系人的多个属性的时候会调用

//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperties:(NSArray<CNContactProperty *> *)contactProperties

//{

//    NSLog(@"-联系人属性--%@",contactProperties);

//}


#pragma mark 取消联系人界面的时候会调用的方法

- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker

{

    NSLog(@"%s取消",__func__);

}



@end


===================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值