2011-03-10 18 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... 
} 

がどのように私は人のためのグループ名(複数可)を得ることができますか? MacOSには、私が必要とするものを行うparentGroupsメソッドを持つABPersonクラスがありますが、iOS上にはそういうものは見当たりません。

代わりに、すべてのグループの配列を取得し、そのグループの配列を繰り返して各グループの連絡先レコードを取得することは可能ですが、もっと直接的な方法があると思いますか?

P.S.それを行う方法はありませんが、グループを反復するように見えます。この質問を後で見つけたい人には、グループを繰り返し、各グループ(ABGroupCopyArrayOfAllMembers)のメンバーを取得してから、すべての連絡先(ABAddressBookCopyArrayOfAllPeople)を反復処理する必要があります。また、ABAddressBookCopyArrayOfAllPeopleはABGroupCopyArrayOfAllMembersコールですでにフェッチした連絡先をも提供するので、重複を確認してください。

+0

私は直接的な方法はないと思います。(グループアレイのみを反復することができます。 – Sergnsk

+0

@Sergnskはい、グループ配列を反復するように見えます。 – SVD

+1

この質問に対する解決策を見つけたら、 – marzapower

答えて

0

チェックアウトhttp://ericasadun.com ABRecordHelper

ためのレコードIDからグループ名を返す方法があります。非常に有用なラッパー。

+0

アドレス帳ラッパーの便利なコレクションのように見えるので、答えを受け入れることができます。 – SVD

関連する問題