iOS 获取通讯录里边的电话号码AddressBook
1 首先导入库 <AddressBook/AddressBook.h>
2 然后在导入#import <AddressBook/AddressBook.h>文件
3 声明 @property (nonatomic,assign) ABAddressBookRef addressBook;//电话簿
并进行初始化 self.addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
4 然后进行获取通讯录的操作
ABAddressBookRequestAccessWithCompletion(self.addressBook, ^(bool granted, CFErrorRef error) {
if(!granted)
{
NSLog(@"未获得访问权限");
}
//权限状态
ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus();
if(status!=kABAuthorizationStatusAuthorized)
{
NSLog(@"未获得通讯录权限");
} //取得记录
CFArrayRef allPeopleCF = ABAddressBookCopyArrayOfAllPeople(self.addressBook);
NSMutableArray *allPeople = (__bridge NSMutableArray *)(allPeopleCF); //过滤没用的号码
for (int i = ; i<allPeople.count; i++) {
//获得记录
ABRecordRef recordRef = (__bridge ABRecordRef)(allPeople[i]);
//获得姓
NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(recordRef, kABPersonFirstNameProperty));
//获得名
NSString *lastName = (__bridge NSString *)(ABRecordCopyValue(recordRef, kABPersonLastNameProperty));
//获得电话号码
ABMultiValueRef phoneNumbersRef = ABRecordCopyValue(recordRef, kABPersonPhoneProperty); //获得电话号码的长度
long count = ABMultiValueGetCount(phoneNumbersRef);
//定义一个字符串用来接收电话号码
NSString *numStr = @"";
if (count>) {
//将ABMultiValueRef转换成nsstring类型的
numStr = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNumbersRef, ));
//去掉86 - 还有空格
numStr = [numStr stringByReplacingOccurrencesOfString:@"+86" withString:@""];
numStr = [numStr stringByReplacingOccurrencesOfString:@"-" withString:@""];
numStr = [numStr stringByReplacingOccurrencesOfString:@" " withString:@""];
} //如果最后的是11位 就表示符合条件
if (numStr.length == ){ // //将电话号放在可变字符串里边方便作为参数
// if(i ==allPeople.count-1){
// [self.allPhoneNum appendString:[NSString stringWithFormat:@"%@",numStr]];
// }else{
// [self.allPhoneNum appendString:[NSString stringWithFormat:@"%@,",numStr]];}
//
// NSLog(@"self.allPhoneNum:%@",self.allPhoneNum); //将电话号码存起来
[self.bookdatas addObject:numStr];
} } });
然后用bookDatas 在tableview中进行展示就可以了
iOS 获取通讯录里边的电话号码AddressBook的更多相关文章
- ios 获取通讯录的所有信息
iOS获取通讯录全部信息 ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef results = ABAddressBoo ...
- IOS 获取通讯录中信息
获取通讯录中信息 一. 我们设置一个ABAddressBookRef类型的属性addressBook. 二. 要获得通讯录中的信息,我们需要获取访问通讯录的权限. 在运行下面的获取权限的方法的时候,系 ...
- iOS获取通讯录所有联系人信息
以下是2种方式: 第一种方法: GetAddressBook.h #import <Foundation/Foundation.h> @interface GetAddressBook : ...
- iOS 获取通讯录权限的时机
建议将获取通讯录权限的代码放到 -(void)viewDidAppear:(BOOL)animated 或 -(void)viewWillAppear:(BOOL)animated 假如放在 view ...
- iOS获取通讯录 电话号码与姓名
// 还是导入 #import <AddressBook/AddressBook.h> - (void)fetchAddressBookBeforeIOS9{ ABAddressBookR ...
- iOS 获取通讯录中联系人的所有属性 by - zfqj
1 ABAddressBookRef addressBook = ABAddressBookCreate(); 2 3 CFArrayRef results = ABAddressBookCopyAr ...
- iOS有关通讯录操作
一.首先获取用户通讯录授权信息. 在AppDelegate中导入#import <AddressBook/AddressBook.h>框架,在下列方法中获取授权信息. - (BOOL)ap ...
- 利用AddressBook.framework框架获取iOS系统通讯录数据
此方法是使用AddressBook.framework框架获取通讯录信息 第一步.在info.plist文件里面配置访问权限 第二步.导入头文件 #import <AddressBook/Add ...
- React Native之获取通讯录信息并实现类通讯录列表(ios android)
React Native之获取通讯录信息并实现类通讯录列表(ios android) 一,需求分析 1,获取通讯录信息,筛选出通讯录里有多少好友在使用某个应用. 2,获取通讯录信息,实现类通讯录,可拨 ...
随机推荐
- asp.net中水印的实现代码
水印是为了防止别盗用我们的图片. 两种方式实现水印效果 1)可以在用户上传时添加水印. a) 好处:与2种方法相比,用户每次读取此图片时,服务器直接发送给客户就行了. b) 缺点:破坏了原始图 ...
- Solr 多核(MultiCore)配置
Solr Multicore意义 Solr Multicore 是 solr 1.3 的新特性.其目的一个solr实例,可以有多个搜索应用.< xmlnamespace prefi ...
- 笔记-人老了-github
其实GITHUB是很不错的,虽然之前的JD泄露那件事情,后果很严重. 但是作为个人使用很不错的. github使用入门: 1:申请一个帐号 2:github使用ssh推送的.(ssh走的是加密) 所以 ...
- 最详细在Windows安装Xamarin.iOS教程
最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...
- Screen-Space Bent Cones (SSBC) in Unity5
噪音少.高度保留了纹理细节 博主近期渲染:最近用unity5弄的一些渲染 ---- by wolf96 http://blog.csdn.net/wolf96
- MacOS下的生活——RescueTime,时间规划利器
前段时间Yxj同学给我推荐了一款可以记录电脑及手机使用时间分类的软件,据说Mac平台下也支持,当时就有了兴趣,但是好像因为什么事给耽搁了,知道今天下午看到Yxj在看这个软件记录的自己的时间表,才觉得这 ...
- Sicily1020-大数求余算法及优化
Github最终优化代码: https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1020.c 题目如下: 1020. ...
- COM初体验
以前在我学校里培训过一段时间C++,我敬爱的吴老师略有提及.那个时候觉得COM遥不可及,觉得,哇塞好神圣.我觉得自己啥都没学好,我不应该这么早去涉及这片过于光荣的领地.既没有觉悟也没有动力去迎接这样一 ...
- 简单之美 | ZooKeeper应用案例
简单之美 | ZooKeeper应用案例 ZooKeeper应用案例
- An Easy Problem?! - POJ 2826(求面积)
题目大意:有两块木板交叉起来接雨水,问最多能接多少. 分析:题目描述很简单,不过有些细节还是需要注意到,如下图几种情况: #include<stdio.h> #include< ...