iPhone中联系人的信息是存放在系统数据库中的。数据库中的每一笔记录都是一个ABRecordRef实例。
通讯录主要存放两种记录:
1、联系人的信息:是ABPerson类型。主要包括联系人的姓名,电话号码,地址信息。
2、分组信息:是ABGroup类型。用于将联系人分到不同的组中。它只有一个属性,表示分组名称。
在viewDidLoad中添加下面代码,获取所有联系人和分组信息:
ABAddressBookRef addressBook =ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople (addressBook);
CFArrayRef allGroups = ABAddressBookCopyArrayOfAllGroups(addressBook);
for
(
id
person in (
NSArray
*) allPeople)
[
self
logContact:person];
for
(
id
group in (
NSArray
*) allGroups)
[
self
logGroup:group];
CFRelease(allGroups);
CFRelease(allPeople);
CFRelease(addressBook);
|
使用ABAddressBookCreate创建一个AddressBook实例。ABAddressBook CopyArrayOfAllPeople和ABAddressBook CopyArrayOfAllGroups查询出所有的联系人和分组信息。通过循环,使用logPerson和logGroup两个方法将信息输出到控制台上。
logPerson方法:
CFStringRef name
=
ABRecordCopyCompositeName(person);
ABRecordID recId = ABRecordGetRecordID(person);
NSLog( @" Person Name: %@ RecordID:%d " ,name, recId);
ABRecordID recId = ABRecordGetRecordID(person);
NSLog( @" Person Name: %@ RecordID:%d " ,name, recId);
logGroup方法:
CFStringRef name
=
ABRecordCopyValue(group,kABGroupNameProperty);
ABRecordID recId = ABRecordGetRecordID(group);
NSLog( @" Group Name: %@ RecordID:%d " ,name, recId);
ABRecordID recId = ABRecordGetRecordID(group);
NSLog( @" Group Name: %@ RecordID:%d " ,name, recId);
总结:本文简单的讲述了如何通过sdk,将iphone的通讯录信息检索出来。
本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2011/03/13/Iphone_Address_Book.html,如需转载请自行联系原作者