2011-03-10 86 views
6

我想知道是否有办法让一个特定的联系人所属的组?获取地址簿联系人的组?

比方说,我得到了所有触点阵列:

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... 
} 

我如何获得个人组名(S)?在MacOS上有ABPerson类,它有parentGroups方法,可以满足我的需求,但我在iOS上没有看到类似的东西。

我想有可能取而代之得到所有组的数组,然后迭代通过该组数组并检索每个组的联系记录,但我希望有一个更直接的方式呢?

P.S.看起来像没有办法做到这一点,但通过组遍历。稍后会发现此问题的人需要注意:要获取所有联系人,您必须遍历组并获取每个组的成员(ABGroupCopyArrayOfAllMembers),然后遍历所有联系人(ABAddressBookCopyArrayOfAllPeople),因为没有“空”组。另请注意,ABAddressBookCopyArrayOfAllPeople也会为您提供您已经使用ABGroupCopyArrayOfAllMembers调用获取的联系人,因此请务必检查重复项。

+0

我觉得没有直接的方法:(你可以遍历数组组仅 – Sergnsk 2011-03-11 05:47:50

+0

@Sergnsk是,貌似通过组阵列迭代它。 – SVD 2011-03-11 21:34:36

+1

如果你找到了解决这个问题,你最好自己接听,接受答案,这将对读者有很大帮助,否则,开始赏金将是改善这个问题的好方法。 – marzapower 2011-06-07 07:20:25

回答

0

退房http://ericasadun.com为ABRecordHelper

有从recordId所返回的组名的方法。非常有用的包装。

+0

看起来像一个有用的地址簿包装器集合,所以 - 接受答案。 – SVD 2011-08-24 17:00:26

相关问题