前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 获取通讯录里边的电话号码AddressBook

iOS 获取通讯录里边的电话号码AddressBook

作者头像
用户1219438
发布2018-02-01 15:13:20
1.2K0
发布2018-02-01 15:13:20
举报
文章被收录于专栏:Alice

1  首先导入库 <AddressBook/AddressBook.h>

2 然后在导入#import <AddressBook/AddressBook.h>文件

3 声明  @property (nonatomic,assign) ABAddressBookRef addressBook;//电话簿

  并进行初始化   self.addressBook = ABAddressBookCreateWithOptions(NULL, NULL);

4 然后进行获取通讯录的操作

代码语言:javascript
复制
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 = 0; 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>0) {
                //将ABMultiValueRef转换成nsstring类型的
                numStr = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNumbersRef, 0));
                //去掉86 - 还有空格
                numStr = [numStr stringByReplacingOccurrencesOfString:@"+86" withString:@""];
                numStr = [numStr stringByReplacingOccurrencesOfString:@"-" withString:@""];
                numStr = [numStr stringByReplacingOccurrencesOfString:@" " withString:@""];
            }
            
            
            //如果最后的是11位 就表示符合条件
            if (numStr.length == 11){
                
//                //将电话号放在可变字符串里边方便作为参数
//                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中进行展示就可以了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-04-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档