Mi método de recuperación programática de direcciones de correo electrónico desde la Libreta de direcciones ya no parece funcionar en dispositivos con iOS 6. Funcionó en iOS 5 y, curiosamente, todavía funciona en el simulador de iOS 6. ¿Hay alguna forma nueva de recuperar contactos desde la libreta de direcciones de un usuario mediante programación?iOS 6 ¿La libreta de direcciones no funciona?
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
self.contacts = [[NSMutableArray alloc] init];
int contactIndex = 0;
for (int i = 0; i < nPeople; i++) {
// Get the next address book record.
ABRecordRef record = CFArrayGetValueAtIndex(allPeople, i);
// Get array of email addresses from address book record.
ABMultiValueRef emailMultiValue = ABRecordCopyValue(record, kABPersonEmailProperty);
NSArray *emailArray = (__bridge_transfer NSArray *)ABMultiValueCopyArrayOfAllValues(emailMultiValue);
[self.contacts addObject:emailArray];
}
Para aclarar, lo anterior no falla, simplemente no devuelve resultados. ABAddressBookCopyArrayOfAllPeople está vacío. ¡Gracias!
Sí, tienes razón. Necesita usar ABAddressBookRequestAccessWithCompletion(). ¿Cómo puedo verificar si este método existe (para
Keller