博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过访问系统通讯录,获取选择用户的全名和电话
阅读量:7144 次
发布时间:2019-06-29

本文共 1757 字,大约阅读时间需要 5 分钟。

hot3.png

#import "ViewController.h"

#import <AddressBookUI/AddressBookUI.h>

ViewController ()<ABPeoplePickerNavigationControllerDelegate>

@property (weak, nonatomic) IBOutlet UILabel *nameLabel;

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

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

}

#pragma mark 点击获取指定练习人的 姓名/电话

- (IBAction)btnclick:(UIButton *)sender {

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

    ABPeoplePickerNavigationController *picker = [ABPeoplePickerNavigationController new];

    

    //2. 设置代理 注意不要设置错了

    picker.peoplePickerDelegate = self;

    

    //3. 以模态视图弹出

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

}

#pragma mark 实现代理方法

/// 当选择了联系人的时候调用此方法

///

/// person       选中的联系人

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

{

    //获取联系人姓名

    //NSString *firstName = CFBridgingRelease(ABRecordCopyValue(person, kABPersonFirstNameProperty));

   // NSString *lastName = CFBridgingRelease(ABRecordCopyValue(person, kABPersonLastNameProperty));

    //self.nameLabel.text = [lastName stringByAppendingString:firstName];

    

    NSString *fullName = CFBridgingRelease(ABRecordCopyCompositeName(person));

    self.nameLabel.text = fullName;

    

    //获取联系人电话

    ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);

    

    //遍历phones, 拿到每一个电话

    CFIndex count = ABMultiValueGetCount(phones);

    

    for (int i = 0; i < count; i++) {

        // 电话label

        NSString *label = CFBridgingRelease(ABMultiValueCopyLabelAtIndex(phones, i));

        //  电话

        NSString *value = CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, i));

        

        NSLog(@"label:%@, value: %@",label, value);

    }

    

    //释放CF对象.如果没有纪录电话,phonenil,不能释放。

    if (phones != nil) {

         CFRelease(phones);

    }

    

}

@end

转载于:https://my.oschina.net/u/2418942/blog/509542

你可能感兴趣的文章
MES之殇和工业IOT之春
查看>>
阿里云网络漏洞扫描系统AVDS(商业化)发布
查看>>
python splinter 小坑说明
查看>>
控制input输入格式
查看>>
一次XEN启动中的错误捕获
查看>>
esxi嵌套华为Fusioncomputer安装VRM几个关键步骤。
查看>>
DNS设置引起的登录延迟
查看>>
saltstack之SLS文件
查看>>
JAVA构建缓存
查看>>
解决:Loading kernel module CAP_SYS_MODULE CAP_NET_ADMIN alias netdev-eth0 instead
查看>>
wav2letter-基于深度学习的语音识别
查看>>
Java class.forname()和newinstance
查看>>
学习计划书
查看>>
[iOS Animation]-CALayer 视觉效果
查看>>
wps的ppt放映时不能完全全屏的解决方法
查看>>
我的友情链接
查看>>
本地存储
查看>>
react-native环境配置入坑指南.
查看>>
使用qemu
查看>>
小试下新博客,一个列传行的SQL
查看>>