Tengo un método para obtener todos los números de teléfono de la libreta de direcciones en el iPhone, pero ¿hay alguna manera de obtener la etiqueta del número de teléfono? Por ejemplo, puede hacer esto: Obtener la etiqueta de número de teléfono iPhone de la Libreta de direcciones
Y yo estaría buscando modificar mi método para imprimir la etiqueta (como iPhone/Inicio/móvil/etc).
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef all = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex n = ABAddressBookGetPersonCount(addressBook);
for(int i = 0 ; i < n ; i++)
{
ABRecordRef ref = CFArrayGetValueAtIndex(all, i);
NSString *firstName = (NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty);
NSLog(@"Name %@", firstName);
ABMultiValueRef *phones = ABRecordCopyValue(ref, kABPersonPhoneProperty);
for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++)
{
NSString *phoneLabel = @""; // ???
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);
//CFRelease(phones);
NSString *phoneNumber = (NSString *)phoneNumberRef;
CFRelease(phoneNumberRef);
NSLog(@" - %@ (%@)", phoneNumber, phoneLabel);
[phoneNumber release];
}
}
¡Gracias, eso fue todo! –
Bienvenido, me alegro de que haya ayudado – shannoga
En lugar de usar (NSString *) para convertir al uso de cadenas (__bridge_transfer NSString *). – Dev2rights