获取iPhone通讯录信息

获取iPhone通讯录信息

    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);

logGroup方法:

 
   
CFStringRef name = ABRecordCopyValue(group,kABGroupNameProperty); ABRecordID recId = ABRecordGetRecordID(group); NSLog( @" Group Name: %@ RecordID:%d " ,name, recId);

猜你喜欢

转载自blog.csdn.net/microchenhong/article/details/6581136