0

尽管 iOS 的地址簿编程指南清楚地解释了 ABPeoplePickerNavigationController 类如何允许用户浏览他们的联系人列表并选择一个人。我想知道如何才能选择“组”。

4

1 回答 1

0

我不知道你的问题现在是否解决了。我只是遇到了同样的问题。据我所知,iOS 没有提供“现成”的方式来访问地址簿中的组,例如人员选择器http://developer.apple.com/library/ios/#documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone /Chapters/UI_Controllers.html
但是,您可以像下面的示例代码一样访问所有组信息(您必须添加错误处理),但您必须自己编写用户界面。

CFErrorRef error;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions (NULL, &error);
CFArrayRef groups = ABAddressBookCopyArrayOfAllGroups (addressBook);
ABRecordRef firstGroup = CFArrayGetValueAtIndex (groups,0);
CFStringRef nameOfFirstGroup = ABRecordCopyCompositeName (firstGroup);
CFRelease(nameOfFirstGroup);
CFArrayRef members = ABGroupCopyArrayOfAllMembers (firstGroup);
ABRecordRef firstMember = CFArrayGetValueAtIndex (members,0);
CFStringRef nameOfFirstMember = ABRecordCopyCompositeName (firstMember);
CFRelease(nameOfFirstMember);
CFRelease(members);
CFRelease(groups);
CFRelease(addressBook);

编辑:
对不起,上面的代码过早地释放了不同的对象。请将CFRelease语句放在代码的末尾。

于 2013-02-27T10:46:28.330 回答