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
相关文章:
如何做网站制作流程,*游戏网站怎么搭建?
,南京靠谱的征婚网站?
如何用花生壳三步快速搭建专属网站?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
宝塔建站助手安装配置与建站模板使用全流程解析
如何用腾讯建站主机快速创建免费网站?
,在苏州找工作,上哪个网站比较好?
如何通过.red域名打造高辨识度品牌网站?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
如何制作网站标识牌,动态网站如何制作(教程)?
家庭服务器如何搭建个人网站?
建站之星会员如何解锁更多建站功能?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
建站之星后台管理如何实现高效配置?
如何选择网络建站服务器?高效建站必看指南
高端建站如何打造兼具美学与转化的品牌官网?
名字制作网站免费,所有小说网站的名字?
如何在橙子建站上传落地页?操作指南详解
广平建站公司哪家专业可靠?如何选择?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何选择靠谱的建站公司加盟品牌?
如何挑选最适合建站的高性能VPS主机?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
如何在香港服务器上快速搭建免备案网站?
高防服务器租用指南:配置选择与快速部署攻略
香港服务器租用费用高吗?如何避免常见误区?
建站10G流量真的够用吗?如何应对访问高峰?
,sp开头的版面叫什么?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星后台管理系统如何操作?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何用AWS免费套餐快速搭建高效网站?
制作企业网站建设方案,怎样建设一个公司网站?
中山网站制作网页,中山新生登记系统登记流程?
网站制作企业,网站的banner和导航栏是指什么?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
制作网站的基本流程,设计网站的软件是什么?
网站制作需要会哪些技术,建立一个网站要花费多少?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何做静态网页,sublimetext3.0制作静态网页?
黑客如何通过漏洞一步步攻陷网站服务器?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
招商网站制作流程,网站招商广告语?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
盘锦网站制作公司,盘锦大洼有多少5G网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
*请认真填写需求信息,我们会在24小时内与您取得联系。