- (void)getContact{

CNAuthorizationStatus authorizationStatus = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];

if(authorizationStatus ==CNAuthorizationStatusAuthorized) {

// 获取指定的字段,并不是要获取所有字段,需要指定具体的字段

NSArray*keysToFetch =@[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey];

CNContactFetchRequest*fetchRequest = [[CNContactFetchRequest alloc]initWithKeysToFetch:keysToFetch];

CNContactStore*contactStore = [[CNContactStore alloc]init];

//创建一个保存通讯录的数组

NSMutableArray *contactArr = [NSMutableArray array];

[contactStore enumerateContactsWithFetchRequest:fetchRequest error:nil usingBlock:^(CNContact*_Nonnull contact,BOOL*_Nonnull stop) {

NSLog(@"-------------------------------------------------------");

NSString*givenName = contact.givenName;

NSString*familyName = contact.familyName;

NSLog(@"givenName=%@, familyName=%@", givenName, familyName);

NSArray*phoneNumbers = contact.phoneNumbers;

for(CNLabeledValue*labelValue in phoneNumbers) {

NSString*label = labelValue.label;

CNPhoneNumber*phoneNumber = labelValue.value;

NSDictionary*contact =@{@"phone":phoneNumber.stringValue,@"user":FORMAT(@"%@%@",familyName,givenName)};

[contactArr addObject:contact];

NSLog(@"label=%@, phone=%@", label, phoneNumber.stringValue);

}

//*stop = YES;// 停止循环,相当于break;

}];

_contactArr= contactArr;

NSError*error;

NSData*jsonData = [NSJSONSerialization dataWithJSONObject:contactArr options:NSJSONWritingPrettyPrinted error:&error];//此处data参数是我上面提到的key为"data"的数组

NSString*jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

_jsonString= jsonString;

NSLog(@"jsonString====%@",jsonString);

[self postContactTo]; //6.上传通讯录

}else{

NSLog(@"====通讯录没有授权====");

}

}

ios 简书 获取通讯录信息_iOS-授权获取通讯录相关推荐

  1. ios 简书 获取通讯录信息_iOS 13获取用户通讯录需要注意的

    获取通讯录还有一个最大的变化,就是iOS9以后 访问通讯录属性,要事先设置好,否则会奔溃, 下面是列表 // 姓名前缀 CNContactNamePrefixKey // 名 CNContactGiv ...

  2. Python获取磁盘使用信息,python获取GPU信息,python根据进程号获取进程信息,pynvml 获取GPU信息,psutil 获取进程信息,系统信息等

    一.工具:psutil模块 psutil是一个跨平台模块,试用相应方法可以直接获取计算机CPU,内存,磁盘,网络等资源使用情况:可以使用我们学习知识与这模块用来做系统监控,性能分析:如果大家熟悉Lin ...

  3. android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

    android获取电池信息:android获取电池容量.技术.电压.电量.温度等信息 1.这里我仅展示工具类,需要注意的是这里的部分值要刷新后才能显示,添加刷新UI的方法即可,而且电量温度等都是变化的 ...

  4. android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名等信息

    android获取GPU信息:android获取GPU渲染器.供应商.版本和扩展名等信息 效果: 1.布局文件 <?xml version="1.0" encoding=&q ...

  5. ios 简书 获取通讯录信息_ios 各种权限整理

    联网权限 引入头文件 @import CoreTelephony; 应用启动后,检测应用中是否有联网权限 CTCellularData *cellularData = [[CTCellularData ...

  6. ios 简书 获取通讯录信息_iOS9以后获取手机通讯录

    一.iOS 9 以前的通讯录框架 AddressBookUI框架:提供了联系人列表界面.联系人详情界面.添加联系人界面等,一般用于选择联系人. AddressBook 框架:纯 C 语言的 API,仅 ...

  7. ios 简书 获取通讯录信息_当心!你用的共享充电宝可能被植入木马盗取信息

    出门在外,你的焦虑感是否会随着手机电量的降低而同步提高呢?乘车.支付.娱乐.联系都离不开手机,一旦没了电简直要丢掉半条命.这个时候遍布大街小巷的共享充电宝简直成了救命稻草.然而在你放心使用共享充电宝时 ...

  8. android 从新浪微博获取用户信息,Android授权登录新浪微博获取用户个人信息

    Android授权登录新浪微博获取用户个人信息 Android授权登录新浪微博获取用户个 人信息 一.准备工作 我们都知道,无论是分享到新浪微博,还是获取新浪微博的用户信息,都离不开一样东西,那就是新 ...

  9. java微信获取用户信息_SpringBoot中获取微信用户信息的方法

    前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...

  10. ajax 微信code获取_微信网页授权——获取code、access_token、openid,及跨域问题解决...

    首先在微信开发文档中有提到微信网页授权的操作步骤: 第一步:用户同意授权,获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中 ...

最新文章

  1. 十折交叉验证10-fold cross validation, 数据集划分 训练集 验证集 测试集
  2. 正则化技巧:标签平滑(Label Smoothing)以及在 PyTorch 中的实现
  3. TYVJ1415 差分约束
  4. Qt Creator连接通用远程Linux设备
  5. java set 接口_【Java提高十七】Set接口集合详解
  6. 2019.08.08学习整理
  7. 第六十六期:软件架构之道的一次感悟
  8. 算法:输入一个链表,输出该链表中倒数第k个结点。
  9. dfs.client.block.write.replace-datanode-on-failure
  10. 手写简化版printf函数
  11. 搜索摄像头/录像机IP地址工具是什么
  12. recover和restore的区别
  13. AddressBook 代码详解
  14. 如何从CDN加载jQuery
  15. Mac下用docker安装阿波罗Apollo
  16. 苹果Mac笔记本电脑如何开启热点分享网络?
  17. 第十届蓝桥杯省赛原题及参考答案
  18. 第1章 Kali Linux入门 一篇就够了
  19. Python实践-咚咚呛讲师Python进阶教程
  20. Maven setting.xml 配置

热门文章

  1. linux判断内存并释放,linux 内存清理/释放命令
  2. 计算机课伤害事故的防范,体育课安全伤害事故的防范与处理
  3. python多线程框架_基于python和bash的多线程任务框架 不要让cpu闲着了
  4. linux 声明消息函数,linux消息队列函数--解析
  5. 一个事物两个方面的对比举例_顶管施工也有讲究,两个方面一个个来
  6. c ++向量库_在C ++中对2D向量进行排序
  7. python整数转换字符串_Python | 将字符串转换为整数列表
  8. scala 函数中嵌套函数_如何在Scala中将函数转换为部分函数?
  9. Thread线程的深刻理解和代理方法参数[有图有真相]
  10. 1-2.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之二