2011-03-10 8 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. 그렇게 할 수는 없지만 그룹을 통해 반복하는 것처럼 보입니다. 모든 연락처를 얻으려면 그룹을 반복하고 각 그룹 (ABGroupCopyArrayOfAllMembers)의 멤버를 얻은 다음 "null"그룹이 없으므로 모든 연락처 (ABAddressBookCopyArrayOfAllPeople)를 반복해야합니다. 또한 ABAddressBookCopyArrayOfAllPeople은 ABGroupCopyArrayOfAllMembers 호출로 이미 가져온 연락처를 제공하므로 중복되는지 확인하십시오.

+0

나는 직접적인 방법이 없다고 생각한다. (그룹 배열 만 반복 할 수있다. – Sergnsk

+0

@Sergnsk 예, 그룹 배열을 반복하는 것처럼 보인다. – SVD

+1

이 질문에 대한 해결책을 찾았 으면 스스로 대답해야한다. 현상금을내는 것은이 질문을 향상시키는 좋은 방법이 될 것입니다. – marzapower

답변

0

체크 아웃 http://ericasadun.com ABRecordHelper

에 대한 recordID와에서 그룹 이름을 반환하는 방법이있다. 매우 유용한 래퍼.

+0

유용한 주소록 래퍼 컬렉션처럼 보이므로 대답을 수락하십시오. – SVD

관련 문제