访问地址簿和单个联系人数据的接口是基于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。它用于创建动态网页,其中...
QT-addressbook-chapter2是一个基于QT框架的C++客户端开发示例项目,旨在帮助开发者学习如何使用QT库创建一个简单的地址簿应用。QT是一个流行的、跨平台的开发工具包,支持Windows、Linux、macOS等多种操作系统,...
【标题】"java-addressbook.rar" 是一个基于Java技术开发的Web通讯录系统,名为"Java的Addressbook_通讯录Web"。这个项目的核心功能是实现对个人联系人的管理,包括添加、修改和删除等基本操作,这在日常工作中非常...
在这个"VUE-AddressBook-master.zip"压缩包中,我们可以预见到一个使用Vue.js开发的联系人地址簿应用实例。 1. **Vue基础知识**: - **数据绑定**:Vue的核心特性之一是双向数据绑定,通过`v-model`指令,可以将...
Java Addressbook是一个基于Java开发的联系人管理应用,它利用SQL数据库作为后端存储来创建和管理联系人信息。这个项目的核心目标是实现一个高效、可靠且用户友好的地址簿系统,通过表格形式展示和操作数据。下面...
react-native-addressbook-ios 这是一个用于访问 iOS 地址的 React 目前仅支持 READ 访问,但希望添加完整的 CRUD 支持 演示 确保你已经 ,然后打开 examples/RCTAddressBook.xcodeproj 并点击 Run 用法 在访问...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
《CIS3100--Term-Project--AddressBook:2015年夏季,巴鲁克》 这个项目是针对巴鲁克学院CIS3100课程的一个学期任务,其主题为“地址簿应用”。这个应用的开发旨在帮助学生深入理解C++编程语言,同时实践软件工程中...
【ios开发】ios开发之通讯录 通过按钮调用通讯录,获得通讯录中的联系人的手机号码 【核心代码】 AddressBookDemo ├── AddressBookDemo │ ├── AddressBookDemo │ │ ├── AddressBookDemoAppDelegate.h │...
* 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-...
"loop-back-addressbook" 是一个基于JavaScript开发的应用程序项目,主要使用了LoopBack框架来构建。LoopBack是一款强大的开源Node.js框架,专为快速构建API和动态Web应用而设计。它允许开发者通过简单的配置和模型...
"com.datazuul.apps--datazuul-addressbook"就是一个这样的项目,它是由DataZuul团队开发的一个小型Swing应用,旨在演示如何使用Java和Derby数据库来构建一个功能齐全的地址簿系统。这个项目的源代码可以在名为...
android 手机电话薄Addressbook开发代码
【标题】:“添加java源码-java-swing-addressbook:源代码”揭示了这是一个关于Java编程的项目,特别涉及Swing库用于构建一个地址簿应用。Swing是Java的一个图形用户界面(GUI)工具包,它是Java Foundation Classes...
在iOS开发中,访问和操作用户的通讯录是一项常见的功能,特别是在构建社交或通讯类应用时。本知识点将深入探讨如何在iOS中实现“ios开发之 通讯录”这一主题,包括如何通过按钮调用通讯录并获取联系人的手机号码。 ...