0
虽然iOS的地址簿编程指南清楚地解释了ABPeoplePickerNavigationController类如何允许用户浏览他们的联系人列表并选择一个人。 我想知道如何才能挑选'组'。如何从ABPeoplePickerNavigationController中选择一个'Group'而不是个人'Person'?
虽然iOS的地址簿编程指南清楚地解释了ABPeoplePickerNavigationController类如何允许用户浏览他们的联系人列表并选择一个人。 我想知道如何才能挑选'组'。如何从ABPeoplePickerNavigationController中选择一个'Group'而不是个人'Person'?
我不知道你的问题现在是否解决了。我只是遇到了同样的问题。就我所见,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
声明。