2012-02-28 10 views
5

Quiero obtener el nombre de contacto, fotos de la libreta de direcciones en mi aplicación de iphone. Puedo obtener contactos y almacenarlos en una matriz. Pero ahora sé cómo obtener fotos de contactos. El código que estoy usando es el siguiente.Obtener fotos de la libreta de direcciones en la aplicación iphone

ABAddressBookRef ab=ABAddressBookCreate(); 
NSArray *arrTemp=(NSArray *)ABAddressBookCopyArrayOfAllPeople(ab); 

arrContact=[[NSMutableArray alloc] init]; 
for (int i=0;i<[arrTemp count];i++) 
{ 
    NSMutableDictionary *dicContact=[[NSMutableDictionary alloc] init]; 
    NSString *str=(NSString *) ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonFirstNameProperty); 
    @try 
    { 
     [dicContact setObject:str forKey:@"name"]; 
    } 
    @catch (NSException * e) { 
     [dicContact release]; 
     continue; 
    } 
    [arrContact addObject:dicContact]; 
    NSLog(@"mohit inside the loop"); 
    [dicContact release]; 
} 

Quiero obtener la foto y el nombre de ambos contactos en esa matriz (arrContactos) y luego mostrarlos en la tabla. Por favor dame una pauta. Gracias

Respuesta

4

En iOS 4 se puede obtener la imagen con:

ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatOriginalSize); 

o

ABPersonCopyImageData(person); 
+0

¿cuál es el tipo de datos de person.is es un tipo de NSMutableArray? –

+0

ABRecordRef, igual que [arrTemp objectAtIndex: i] que está utilizando para ABRecordCopyValue. Para descubrirlo, escriba ABPersonCopyImageData en Xcode y luego haga clic en él, magia, haga clic de nuevo en la ventana emergente que aparece para ir a la documentación completa. – valexa

6

En el modo ARC

 
NSData *imgData = (__bridge_transfer NSData *) ABPersonCopyImageDataWithFormat(record, kABPersonImageFormatThumbnail); 

donde registro es el objeto de la clase

ABRecordRef

Espero que s ayuda

Cuestiones relacionadas