如何从ABPeoplePickerNavigationController中选择一个'Group'而不是一个'Person'?

时间:2012-07-17 03:12:36

标签: abpeoplepickerview addressbookui

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

1 个答案:

答案 0 :(得分: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语句放在代码的末尾。