iOS10 - 访问系统通讯录新方法
- 所需框架
#import <ContactsUI/ContactsUI.h>
- 遵循代理
CNContactPickerDelegate
- 调用通讯录
- 如果在iOS10的机器上调用以前的ABPeoplePickerNavigationController老方法将直接崩溃.
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//iOS 10
// AB_DEPRECATED("Use CNContactPickerViewController from ContactsUI.framework instead")
CNContactPickerViewController * contactVc = [CNContactPickerViewController new];
contactVc.delegate = self;
[self presentViewController:contactVc animated:YES completion:^{
}];
}
- 选择完成代理回调
#pragma mark - 用户点击联系人获取方法 两个方法都写只调用此方法
-(void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
// NSLog(@"contact : %@",contact);
// 姓氏 名字
NSLog(@"name:%@%@",contact.familyName,contact.givenName);
//公司名
NSLog(@"公司: %@",contact.organizationName);
//获取通讯录某个人所有电话并存入数组中 需要哪个取哪个
NSMutableArray * arrMPhoneNums = [NSMutableArray array];
for (CNLabeledValue * labValue in contact.phoneNumbers) {
NSString * strPhoneNums = [labValue.value stringValue];
NSLog(@"所有电话是: %@",strPhoneNums);
[arrMPhoneNums addObject:strPhoneNums];
}
//所有邮件地址数组
NSMutableArray * arrMEmails = [NSMutableArray array];
for (CNLabeledValue * labValue in contact.emailAddresses) {
NSLog(@"email : %@",labValue.value);
[arrMEmails addObject:labValue.value];
}
[picker dismissViewControllerAnimated:YES completion:nil];
}
- 用户点某个联系人进去获取属性调用的方法 例如从通讯录选择联系人打电话两个方法都写只调用上面方法
#pragma mark - 用户点进去获取属性调用方法 例如从通讯录选择联系人打电话两个方法都写只调用上面方法
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty{
// NSLog(@"contactProperty : %@",contactProperty);
// NSLog(@"contact : %@",contactProperty.contact);
// NSLog(@"key : %@",contactProperty.key);
// [[UIApplication sharedApplication] openURL:url];
// NSLog(@"identifier : %@",contactProperty.identifier);
// NSLog(@"label : %@",contactProperty.label);
//获得点击的属性,在此进行处理...
NSLog(@"value : %@",[contactProperty.value stringValue]);
[picker dismissViewControllerAnimated:YES completion:nil];
}
- 取消选择回调
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker{
[picker dismissViewControllerAnimated:YES completion:nil];
}
iOS10 - 访问系统通讯录新方法的更多相关文章
- iOS10 获取系统通讯录新方法
#import <ContactsUI/ContactsUI.h> 遵循代理 CNContactPickerDelegate 调用通讯录 如果在iOS10的机器上调用以前的ABPeople ...
- ios(包括6、7)应用程序引用系统通讯录的方法 [亲测可行]
由于ios系统对用户隐私的控制,第三方应用程序只能通过苹果官方接口调用系统通讯录,不能像android那样直接操作通讯录数据库. 一般地,使用系统自带通讯录的方法有两种,一种是直接将整个通讯录 ...
- iOS开发--系统通讯录的访问与添加联系人
公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通 ...
- iOS:ABPeoplePickerNavigationController系统通讯录使用
昨天因项目需求要访问系统通讯录获取电话号码,于是乎从一无所知,开始倒腾,倒腾了一下午,总算了弄好了.写这边博客是为了记录一下,自己下一次弄的时候就别在出错了.同时,有和我一样的菜鸟能够避免走一下弯路. ...
- C++11新特性,利用std::chrono精简传统获取系统时间的方法
一.传统的获取系统时间的方法 传统的C++获取时间的方法须要分平台来定义. 相信百度代码也不少. 我自己写了下,例如以下. const std::string getCurrentSystemTime ...
- Android项目--浅析系统通讯录中的那些方法
系统通讯录,以前的版本虽然过时了,不过有些东西还是可以用. 1.开启系统联系人添加 /** 添加联系人 */ Intent intent = new Intent(Intent.ACTION_INSE ...
- 网络基础 图解Windows系统下单网卡设置双IP访问不同网段的方法
图解Windows系统下单网卡设置双IP访问不同网段的方法 by:授客 QQ:1033553122 在Windows系统下即使只有一块网卡,同样可以实现双IP访问不同网段. 例: 外网信息: IP:1 ...
- mac常用快捷键,Mac文件重命名快捷键,Mac OS快速访问系统根目录, MacOS 10.11重要数据的存储位置大全
command+r,相当于F5,刷新页面 command+F5,启动voiceover command+q 关闭当前程序 在Finder中command+/ 打开底部状态栏,可以查看剩余磁盘空间大小 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
随机推荐
- RESTful API 设计指南 (转)
RESTful API 设计指南 2016-02-23 ImportNew (点击上方公号,可快速关注) 作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2014/0 ...
- springMVC含文件上传调用ajax无法连接后台
springMVC在使用ajax进行后台传值的时候发现找不到对应的requestMapping(""),无法进入后台,在多次试验后确定是 MultipartFile对象与ajax冲 ...
- CSS3动画效果-7.13
例如: <body> <div class="div1"></div> </body> CSS: @keyframes myfirs ...
- Salt安装(yum不可用时)
salt-master安装 [salt-master]# yum install salt-master 或者 curl -L http://bootstrap.saltstack.o ...
- js 爱恨情仇说 this
this 相信大家在写代码的时候都会遇到,可是怎么样才能用好this,估计这个还是有点困难的,虽然你有时候你会用到,但是他所在的具体的几个场景中所代表的是什么意思了?可能这个你就不是很清楚啊.这个就会 ...
- 2016huasacm暑假集训训练四 递推_A
题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/A 这题主要考的就是就是一个排列公式,但是不能用阶乘的公式, 用这个公式不易超 ...
- gong server
宫 server mac os 系统 vpn 202.39.176.66 funmobigtmvpn 密码 funmobi!@ 安装 eclipse 安装mysql 1 配置 ...
- mysql数据库迁移
由于yum安装mysql的时候,数据库的data目录默认是在/var/lib下,出于数据安全性的考虑需要把它挪到/data分区.步骤如下: 一.关闭apache和mysql. 复制代码 代码如下: s ...
- Learn JavaScript(面向对象的程序设计01)
最新更新请访问: http://denghejun.github.io JavaScript与OOP JavaScript作为web前端一种重要的脚本技术,已被大多开发人员所熟知.compare ...
- 第一章-第三题(目前流行的源程序版本管理软件和项目管理软件优缺点)--By梁旭晖
引用自:http://www.cnblogs.com/WJ1234/p/5285595.htmlhttp://blog.163.com/yuyang_tech/blog/static/21605008 ...