iOS9 通讯录(无界面的和有界面的)


iOS9 通讯录(有界面)
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
   
//不用授权
   
   
//展示界面
   
CNContactPickerViewController *picker = [[CNContactPickerViewController alloc]init];
   
    picker.
delegate = self;
   
   
    [
self presentViewController:picker animated:YES completion:nil];
}

//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact
//{
//   
//   
//}
//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty
//{
//   
//}
- (
void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact*> *)contacts
{
   
for (CNContact *contact in contacts) {
       
NSLog(@"%@",contact.givenName);
       
for (CNLabeledValue *value  in contact.phoneNumbers) {
           
NSLog(@"%@",value.value);
        }
    }
}
iOS9 通讯录(无界面)

    /*
    CNAuthorizationStatusNotDetermined = 0,
    CNAuthorizationStatusRestricted,
    CNAuthorizationStatusDenied,
    CNAuthorizationStatusAuthorized
     */

   
   
CNContactStore *store = [[CNContactStore alloc]init];
   
   
if (CNAuthorizationStatusNotDetermined == [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts]) {
       
//授权
        [store
requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
           
if (granted) {
               
NSLog(@"授权成功!");
            }
else{
               
NSLog(@"授权失败!");
            }
           
        }];
    }
   

#import "ViewController.h"
#import
<Contacts/Contacts.h>
@interface ViewController ()

@end

@implementation ViewController
- (
void)viewDidLoad {
    [
super viewDidLoad];
}

- (
void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
   
   
//获取数据
   
CNContactStore *store = [[CNContactStore alloc]init];
   
   
//封装参数
   
CNContactFetchRequest *request = [[CNContactFetchRequest alloc]initWithKeysToFetch:@[CNContactGivenNameKey,CNContactPhoneNumbersKey]];
   
   
   
    [store
enumerateContactsWithFetchRequest:request error:nil usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {
       
//stop
       
//*stop = YES;
       
NSLog(@"%@",contact.givenName);
       
       
for (CNLabeledValue *value in contact.phoneNumbers) {
           
           
NSLog(@"%@",value.value);
           
        }
       
       
    }];
   
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值