获取地址簿联系人的组?

时间:2011-03-10 21:56:58

标签: iphone cocoa-touch ios

我想知道是否有办法让特定联系人所属的群组?

假设我得到了所有联系人的数组:

NSMutableArray *people = [[[(NSArray*) 
      ABAddressBookCopyArrayOfAllPeople(addressBook) autorelease] 
      mutableCopy] autorelease];

然后迭代它们:

for (int personN = 0; personN < [people count]; personN++) {
ABRecordRef person = [people objectAtIndex:personN];
NSString* firstName = (NSString*)ABRecordCopyValue(person, 
                      kABPersonFirstNameProperty);
//and so on...
} 

如何获取此人的群组名称?在MacOS上有ABPerson类,它具有我所需要的parentGroups方法,但我在iOS上看不到类似的内容。

我想可以改为获取所有组的数组,然后迭代组数组并检索每个组的联系人记录,但我希望有更直接的方法吗?

P.S。看起来没有办法做到这一点,但迭代组。对于那些后来发现这个问题的人来说,有一点需要注意:要获得所有联系人,你必须遍历组并获得每个组的成员(ABGroupCopyArrayOfAllMembers),然后遍历所有联系人(ABAddressBookCopyArrayOfAllPeople),因为没有“null”组。另请注意,ABAddressBookCopyArrayOfAllPeople还会为您提供已使用ABGroupCopyArrayOfAllMembers调用获取的联系人,因此请务必检查重复项。

1 个答案:

答案 0 :(得分:0)

查看http://ericasadun.com了解ABRecordHelper

有一种方法可以从recordID返回组名。非常有用的包装。