调用系统通讯录

#import "ViewController.h"

//iOS6开始, 要访问通讯录, 必须先授权. 不授权上架可能被拒

//AddressBook是iOS9之前用的类库. 使用的C语言的底层语法. 用的是CoreFoundation.

//#import<AddressBook/AddressBook.h>

//#import<AddressBook/AddressBookUI.h>

//iOS9出的. 面向对象. 苹果官方推荐使用ContactsUI.

#import<Contacts/Contacts.h>

#import<Contacts/ContactsUI.h>

@interface ViewController ()<CNContactPickerDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

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

}

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

{

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

CNContactPickerViewController *pickerVC = [CNContactPickerViewController new];

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

pickerVC.delegate = self;

//3. 模态弹出

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

}

#pragma mark CNContactPickerViewController的代理方法

// 当选中联系人之后会调用此方法

- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{    //1. 姓名    NSLog(@" 姓: %@, 名: %@",  contact.familyName, contact.givenName);        //2. 电话    //NSArray*>            *phoneNumbers;

for (CNLabeledValue *labeledValue in contact.phoneNumbers) {

// 通过打印(泛型)可以得知类型 ValueType =  CNPhoneNumber

CNPhoneNumber *phoneNumber = labeledValue.value;

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

}

}

- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker

{

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容