IOS---访问通讯录
发布日期:2021-11-21 04:41:04
浏览次数:28
分类:技术文章
本文共 1585 字,大约阅读时间需要 5 分钟。
一。没有提供界面的“低级”API:AddressBook
ABAddressBookRef是Core Foundation框架访问通讯录的接口
//创建ABAddressBookRef
CFErrorRef error = NULL; ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);//请求权限并且释放资源,如果权限通过的话调用代码块里面的内容,使用完之后需要手动释放对象,因为Core Foundation不支持ARC技术
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { if(granted) { [self filterContentForSearchText:@""]; } }); CFRelease(addressBook);//判断改程序是否得到验证和授权
if(ABAddressBookGetAuthorizationStatus()!=kABAuthorizationStatusAuthorized) { return; }
//需要明确的是Core Foundation和Foundation的区别,前者提供C接口,所以在操作Core Foundation里面的函数方法都不会带“*”,而后者是提供的Object-c接口,但是两者之间可以转化,比如用(__bridge)type->Foundation或者CFBridgingRelease来转化,后者是ARC;另外还可以通过下面的方式转换NSString类型
CFStringRef cfSearchText = (CFStringRef)CFBridgingRetain(searchText);
//访问所有的联系人
self.listContacts = CFBridgingRelease(ABAddressBookCopyArrayOfAllPeople(addressBook));
//更具名字访问联系人
self.listContacts = CFBridgingRelease(ABAddressBookCopyPeopleWithName(addressBook, cfSearchText));
//如何访问数组里面的条目呢?
*取得单个人
ABRecordRef thisPerson = CFBridgingRetain([self.listContacts objectAtIndex:[indexPath row]]);//取得姓和名
NSString *firstName = CFBridgingRelease(ABRecordCopyValue(thisPerson, kABPersonFirstNameProperty)); firstName = firstName != nil?firstName:@""; NSString *lastName = CFBridgingRelease(ABRecordCopyValue(thisPerson, kABPersonLastNameProperty)); lastName = lastName != nil?lastName:@"";
//直接取得名字
NSString* name = CFBridgingRelease(ABRecordCopyCompositeName(thisPerson));
转载地址:https://blog.csdn.net/xiaoji94shen/article/details/22715361 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月08日 05时54分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux 模拟键盘输入到进程,Linux 下模拟键盘输入
2019-04-21
linux服务器上已安装R 用户下载R包,R语言安装R package的2种方法
2019-04-21
linux下mysql 备份方法,Linux下mysql数据库备份方法小结
2019-04-21
肺部ct重建_胸片检查容易漏诊肺癌,去年正常今年晚期常发生,体检一定要做CT...
2019-04-21
x86so文件装换成arm64位_64位系统正式发布说明及介绍!!
2019-04-21
for循环中取出最大最小 累加_LeetCode之长度最小的子数组
2019-04-21
如何打开老公人脸识别_【话题】南宁已有小区启用人脸识别门禁,有人点赞有人忧...
2019-04-21
makex机器人程序_机器人教育为相城青少年叩开科学世界大门
2019-04-21
米哈游客户端笔试题_Garena校招 游戏客户端开发通关面经
2019-04-21
airpodspro没有弹窗_使用AirPods Pro一天的主观感受
2019-04-21
创建物化视图commit_视图及范式
2019-04-21
函数传参字典_Python新手上车17:函数传递任意多个参数
2019-04-21
秦九韶算法递推公式_算法讲解之复杂度分析
2019-04-21