美文网首页
调用系统通讯录

调用系统通讯录

作者: 不会打滚儿的狮子 | 来源:发表于2016-08-29 22:07 被阅读53次

#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

{

}

相关文章

网友评论

      本文标题:调用系统通讯录

      本文链接:https://www.haomeiwen.com/subject/bqkfettx.html