访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数。管理地址簿中条目的基类对象是 ABRecord。一个 ABRecord 可以表示一个人 或者一个群体 ABGroup 。无论何时,在界面上选中一条记录,或者使用框架进行查询返回一条结果,系统都会返回一个指向 ABRecord 的指针,标示为 ABRecordRef。与地址簿 API 的大部分交互都涉及使用 ABRecordRef 这个引用类型。
常用访问记录的函数如下:
ABRecordID ABRecordGetRecord(ABRecordRef record);
返回 ABRecordID ,代表了 记录在底层数据库中的ID号。具有唯一性。
ABRecordType ABRecordGetRecordType(ABRecordRef record);
返回记录类型。可以是 kABPersonType 和 kABGroupType
CFStringRef ABRecordCopyCompositeName(ABRecordRef record);
返回个人或群体完整名称。例:NSString* name = (NSString*)ABRecordCopyCompositeName(record);
一、高层地址簿函数
1.获得地址簿句柄
你必须先初始化地址簿,然后才能对其进读写操作。要获得一个地址簿句柄,可以使用 ABAddressBookCreate函数:
#import <AddressBook/AddressBook.h>
AddressBookRef ab = AddressBookCreate();
2. 保存地址簿
获得了地址簿的引用就可以对其进行操作了,操作完毕要记得保存:
CFErrorRef err;
BOOL success = ABAddressBookSave(ab, &err);
如果不确定是否需要保存,则可以用:
BOOL hasUnsavedChanges = ABAddressBookHasUnsavedChanges(ab);
3.添加/删除 记录
CFErrorRef err;
BOOL success =ABAddressBookAddRecord(ab, record, &err);//添加
CFErrorRef err;
BOOL success =ABAddressBookRemoveRecord(ab, record, &err);//删除
二、查询地址簿
地址簿框架仅仅提供了基本的查询功能。可以用函数根据名字来查询多个记录,或者是根据特定记录 ID 查询单个记录。
1.获取地址簿中记录总个数:
CFIndex count = ABAddressBookGetPersonCount(ab);
printf("%ld total entries in the address book\n",count);
2. 获取所有联系人:
NSArray* array = (NSArray*)ABAddressBookCopyArrayOfAllPeople(ab);
printf("Retrieved %d contacts\n",[array count]);
3. 在联系人列表中查询一个特定的名字:
NSArray* arrayByName = (NSArray*)ABAddressBookCopyPeopleWithName(ab, CFSTR("Liu Wei"));
函数如其名,这个函数返回的并不是地址簿中实际的对象,而是拷贝。要访问这个数组的单个记录,就用NSArray的方法啦:
ABRecordRef myRecord = [arrayByName objectAtIndex:0];
除了通过名字查询,你也可以直接通过ID查询(假如你知道ID的话):
ABRecordRef myRecord = ABAddressBookGetPersonWithRecordID(ab, recordID);
转自:
http://blog.csdn.net/iukey/article/details/7343650
分享到:
相关推荐
Ajax-Project-AJAX-AddressBook.zip,用php与jquery和ajax一起编写的单页应用程序(spa),ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中...
react-native-addressbook-ios 这是一个用于访问 iOS 地址的 React 目前仅支持 READ 访问,但希望添加完整的 CRUD 支持 演示 确保你已经 ,然后打开 examples/RCTAddressBook.xcodeproj 并点击 Run 用法 在访问...
Java Addressbook. with Sql database create table for backend
学习QT开发练习的例子,用户C++客户端开发
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
java和数据库开发的web通讯录系统,可以实现联系人的添加,修改删除等
利用vue进行增删查改。主要由于公司网络限制,上传到csdn以方便自己学习使用
官方版本,亲测可用
官方版本,亲测可用
* 1. 添加通讯录 * * 2. 删除通讯录 * * 3. 显示通讯录 * * 4. 电话簿存盘 * * 5. 读出电话簿 * * 6. 查找联系人 * * 7. 退出 *
节点演示地址簿 测试下Mac OS X Linux(通过 Travis-CI)安装和调试: $ git clone https://github.com/mrcrgl/node-demo-addressbook.git$ cd node-demo-addressbook$ npm install$ npm run-script test$ npm run-...
android 手机电话薄Addressbook开发代码
com.datazuul.apps--datazuul-addressbook datazuul.com - DataZuul 应用程序:地址簿 Little Swing + Derby DB 演示
my-addressbook-j2ee-full-stack-application 目标是作为Mphasis竞争的一部分,使用Java EE技术在线存储任意数量的联系人。 ######软件/工具: Eclipse Java EE IDE MySQL数据库 ######使用的技术: HTML和CSS ...
CIS3100--期限项目-地址簿 巴鲁克学院CIS3100课程的学期项目(地址簿申请),2015年夏季
离线安装包,亲测可用
这是一个被遗弃的项目,我们将其保留在历史原因中。 请忽略。...bower安装都将在Web应用程序上运行。 未来的构建应该大大加快。 android和台式机构建都将强制构建Web项目作为先决条件。 gradlew installApp要构建台式机...
我的应用程序 该项目由生成。