获取Iphone中的联系人

来源:互联网 发布:红旗linux桌面版 编辑:程序博客网 时间:2024/05/01 09:04

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

  总结:本文简单的讲述了如何通过SDK,将iphone的通讯录信息检索出来。

  作者:朱祁林

  出处:http://zhuqil.cnblogs.com

  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原创粉丝点击