iOS 获取系统通讯录的方法

首先需要导入头文件

#import <ContactsUI/ContactsUI.h>

弹出通讯录控制器

CNContactPickerViewController *contactVC = [[CNContactPickerViewController alloc] init];
contactVC.delegate = self;// 设置代理:CNContactPickerDelegate
[[self currentController] presentViewController:contactVC animated:YES completion:nil];

实现代理CNContactPickerDelegate方法,可获得选中的联系人电话和姓名,再做后续操作。

- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty
{
    if ([contactProperty.value isKindOfClass:[CNPhoneNumber class]]) {
        // 获取选中电话对应的联系人名字:在givenName、familyName、organizationName中,哪个不为空选哪个。
        NSString *contactName = @"";
        if ([HELPER isZeroLengthWithString:contactProperty.contact.givenName] == NO) {
            contactName = contactProperty.contact.givenName;
        }else if ([HELPER isZeroLengthWithString:contactProperty.contact.familyName] == NO) {
            contactName = contactProperty.contact.familyName;
        }else if ([HELPER isZeroLengthWithString:contactProperty.contact.organizationName] == NO) {
            contactName = contactProperty.contact.organizationName;
        }
        
        
        // [contactProperty.value stringValue] 为选中的联系电话
        if (self.didSelectContactBlock) {
            self.didSelectContactBlock([contactProperty.value stringValue], contactName);
        }
    }
}

效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值