iOS系统通讯录使用CNContact

此文主要记录系统通讯录的用法,主要自我归纳,方便查询,参考文献很详细,不做赘述,主要2部分内容:

  • 调起系统通讯录;
  • 读取系统通讯录的数据;

一、调起系统通讯录

参考文献 : https://www.cnblogs.com/devfan/p/8383653.html
首先必不可少的权限判断,此处忽略,↓ 直接贴代码:

// S1: #import <ContactsUI/ContactsUI.h> 
// S2: 遵循协议<CNContactPickerDelegate>
// S3:页面拉起
// S4:协议方法实现

/// 打开系统通讯录
CNContactPickerViewController *contactPicker = [[CNContactPickerViewController alloc] init];
contactPicker.delegate = self;
contactPicker.displayedPropertyKeys = @[CNContactPhoneNumbersKey];
[self presentViewController:contactPicker animated:YES completion:nil];


#pragma mark - CNContactPickerDelegate  进入系统通讯录页面 --
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty {
    CNPhoneNumber *phoneNumber = (CNPhoneNumber *)contactProperty.value;
    [self dismissViewControllerAnimated:YES completion:^{
        /// 联系人
        NSString *name = [NSString stringWithFormat:@"%@%@",contactProperty.contact.familyName,contactProperty.contact.givenName];
        /// 电话
        CNLabeledValue  *phoneLabeledValue = [contactProperty.contact.phoneNumbers firstObject];
        CNPhoneNumber *phoneValue = phoneLabeledValue.value;
        NSString *phone = phoneValue.stringValue;
        
        /// 邮箱
        CNLabeledValue *emailLabledValue = [contactProperty.contact.emailAddresses firstObject];
        NSString *email = emailLabledValue.value;
    }];
}

/**
获取更多信息,点击contact属性定义进去,就可以看到你想要的数据定义,如果是NSArray格式,注意对应数据类型。
*/

二、获取通讯录数据信息

参考文献:
iOS9以前: https://www.shuzhiduo.com/A/ke5jegkgJr/
iOS9以后:https://www.jianshu.com/p/fadeb914d1ed

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容