IOS 开发之读取addressbook的实现实例
发布时间 - 2026-01-11 03:17:46 点击率:次IOS 开发之读取addressbook的实现实例

iphone读取addressbook:
1.添加addressbook.framework
2.在需要的源文件中
#import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h>
3.开始粘代码:
//get all people info from the address book
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);//这是个数组的引用
for(int i = 0; i<CFArrayGetCount(people); i++){
//parse each person of addressbook
ABRecordRef record=CFArrayGetValueAtIndex(people, i);//取出一条记录
//以下的属性都是唯一的,即一个人只有一个FirstName,一个Organization。。。
CFStringRef firstName = ABRecordCopyValue(record,kABPersonFirstNameProperty);
CFStringRef lastName = ABRecordCopyValue(record,kABPersonLastNameProperty);
CFStringRef company = ABRecordCopyValue(record,kABPersonOrganizationProperty);
CFStringRef department = ABRecordCopyValue(record,kABPersonDepartmentProperty);
CFStringRef job = ABRecordCopyValue(record,kABPersonJobTitleProperty);
//"CFStringRef"这个类型也是个引用,可以转成NSString*
NSlog((NSString *)firstName);
//......
//所有这些应用都是要释放的,手册里是说“you are responsible to release it"
(firstName==NULL)?:CFRelease(firstName);
(lastName==NULL)?:CFRelease(lastName);
(company==NULL)?:CFRelease(company);
(department==NULL)?:CFRelease(department);
(job==NULL)?:CFRelease(job);
//.......
//有些属性不是唯一的,比如一个人有多个电话:手机,主电话,传真。。。
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
//所有ABMutableMultiValueRef这样的引用的东西都是这样一个元组(id,label,value)
multiPhone = ABRecordCopyValue(record, kABPersonPhoneProperty);
for (CFIndex i = 0; i < ABMultiValueGetCount(multiPhone); i++) {
CFStringRef labelRef = ABMultiValueCopyLabelAtIndex(multiPhone, i);
CFStringRef numberRef = ABMultiValueCopyValueAtIndex(multiPhone, i);
//可以通过元组的label来判定这个电话是哪种电话,比如下面就包括:主电话,手机,工作传真
if([(NSString *)labelRef isEqualToString:(NSString *) kABPersonPhoneMainLabel]){
person._mainPhone = (NSString *)numberRef;
}else if([(NSString *)labelRef isEqualToString:(NSString *) kABPersonPhoneMobileLabel]){
person._cellPhone = (NSString *)numberRef;
}else if([(NSString *)labelRef compare:(NSString *) kABPersonPhoneWorkFAXLabel]==NSOrderedSame){
person._fax = (NSString *)numberRef;
}
CFRelease(labelRef);
CFRelease(numberRef);
}
CFRelease(multiPhone);
}
//释放资源
//其他还有url,email,地址等等属性都是ABMutableMultiValueRef多值类型的,可以采用循环来遍历
完了,保存addressbook的部分等以后。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# IOS
# 读取addressbook的实例
# iPhone
# 读取addressbook的实现方法
# IOS 中弹框的实现方法整理
# Android实现类似iOS风格的对话框实例代码
# ios微信浏览器返回不刷新问题完美解决方法
# iOS开发之TextField禁用粘贴、选择和全选功能
# JS解决IOS中拍照图片预览旋转90度BUG的问题
# IOS开发之手势响应事件优先级的实例详解
# 都是
# 是个
# 多个
# 如有
# 遍历
# 是唯一
# 可以通过
# 希望能
# 这样一个
# 是说
# 只有一个
# 谢谢大家
# 这是个
# 哪种
# 转成
# 疑问请
# int
# CFArrayGetCount
# ABAddressBookCreate
# addressbook
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
如何在Windows服务器上快速搭建网站?
如何在香港免费服务器上快速搭建网站?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
微信公众帐号开发教程之图文消息全攻略
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
如何正确选择百度移动适配建站域名?
Laravel集合Collection怎么用_Laravel集合常用函数详解
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
如何快速搭建支持数据库操作的智能建站平台?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何在万网开始建站?分步指南解析
Laravel storage目录权限问题_Laravel文件写入权限设置
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
iOS UIView常见属性方法小结
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
javascript基本数据类型及类型检测常用方法小结
浅谈javascript alert和confirm的美化
北京的网站制作公司有哪些,哪个视频网站最好?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何快速搭建高效WAP手机网站吸引移动用户?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel观察者模式如何使用_Laravel Model Observer配置
js实现点击每个li节点,都弹出其文本值及修改
Mybatis 中的insertOrUpdate操作
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
js代码实现下拉菜单【推荐】
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
Windows Hello人脸识别突然无法使用
大同网页,大同瑞慈医院官网?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
MySQL查询结果复制到新表的方法(更新、插入)
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel如何实现用户注册和登录?(Auth脚手架指南)
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel如何自定义分页视图?(Pagination示例)
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何在宝塔面板中创建新站点?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
魔方云NAT建站如何实现端口转发?

