2011-01-09 13 views

Respuesta

28

El siguiente debería funcionar:

ABAddressBookRef aB = ABAddressBookCreate(); 
ABRecordRef source = ABAddressBookCopyDefaultSource(aB); // or get the source with ABPersonCopySource(somePersonsABRecordRef); 
NSArray *arr = (NSArray *)ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(aB, source, kABPersonSortByLastName); 
// you can also use kABPersonSortByFirstName instead of kABPersonSortByLastName 
+4

Nota: El orden de clasificación preferido se ABPersonGetSortOrdering() - esto se llenará en el orden de clasificación de las preferencias del usuario. – n13

+1

Y gracias, esto es asombroso. Es mucho más rápido que obtener todos los contactos y clasificarlos en código como he visto en muchos otros ejemplos. – n13

+1

¿Alguien ha podido hacer esto en Swift? Parece que no puedo hacer que funcione. – Dean

0

Esto funcionó para mí:

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error); 
ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook); 
NSArray *allPeople = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByFirstName); 
Cuestiones relacionadas