2012-07-17 52 views

回答

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声明。

相关问题