2011-03-10 13 views
6

Zastanawiam się, czy istnieje sposób na uzyskanie grupy, do której należy dany kontakt?Uzyskaj grupę kontaktów Książki adresowej?

Powiedzmy mam tablicę wszystkich kontaktów:

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

a następnie iterację nich:

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

Jak mogę uzyskać nazwę (y) Grupa dla osoby? Na MacOSie jest klasa ABPerson, która ma metodę parentGroups, która robi to, czego potrzebuję, ale nie widzę czegoś takiego na iOS.

Przypuszczam, że można zamiast tego uzyskać tablicę wszystkich grup, a następnie powtórzyć tę tablicę grup i pobrać rekordy kontaktów dla każdej grupy, ale miałem nadzieję, że istnieje bardziej bezpośredni sposób na to?

P.S. Wygląda na to, że nie ma sposobu, aby to zrobić, ale do iteracji poprzez grupy. Jedno zastrzeżenie dla tych, którzy później znajdą to pytanie: aby uzyskać wszystkie kontakty, trzeba przejrzeć grupy i uzyskać członków każdej grupy (ABGroupCopyArrayOfAllMembers), a następnie iterować wszystkie kontakty (ABAddressBookCopyArrayOfAllPeople), ponieważ nie ma grupy "zerowej". Zauważ też, że ABAddressBookCopyArrayOfAllPeople poda Ci również kontakty już pobrane za pomocą wywołań ABGroupCopyArrayOfAllMembers, więc pamiętaj o sprawdzeniu duplikatów.

+0

Myślę, że nie ma bezpośredniej drogi :(możesz iterować tylko tablicę grupy – Sergnsk

+0

@Sergnsk tak, wygląda jak iteracja poprzez tablicę grup jest – SVD

+1

Jeśli znalazłeś rozwiązanie tego pytania, lepiej odpowiedz na to pytanie samodzielnie i Przyjmij odpowiedź, która bardzo pomoże przychodzącym czytelnikom, w przeciwnym razie rozpoczęcie bounty będzie świetnym sposobem na ulepszenie tego pytania: – marzapower

Odpowiedz

0

Wyjazd http://ericasadun.com dla ABRecordHelper

istnieje metoda, aby powrócić nazwę grupy z recordID. bardzo pomocne opakowanie.

+0

Wydaje się, że jest to użyteczny zbiór wrapperów do Książki adresowej, więc - akceptując odpowiedź. – SVD

Powiązane problemy