2013-01-10 2 views
2

Je suis en train de comprendre comment ajouter personnes dernier nom et prénom dans ce code ci-dessous afin d'obtenir leur image de contact de mon téléphone:Obtenez un contact image ios

if(ABPersonHasImageData(aABRecordRef)) 
{ 
    UIImage *image = [UIImage imageWithData:(NSData *)ABPersonCopyImageData(aABRecordRef)]; 
    cell.imageView.image = image; 
} else { 
    UIImage *image1=[UIImage imageNamed:@"User.jpg"]; 
    cell.imageView.image=image1; 
} 

I pourrait également être manquant de code ici, donc s'il vous plaît remplir dans les zones où il est nécessaire. Je ne peux pas comprendre comment ajouter le d'abord, le dernier nom au code ci-dessus donc je sais quand j'ai atteint ce contact pour extraire l'image pour cela.

Toute aide serait géniale! Merci!

Répondre

4

Pour obtenir le FirstName et LastName, vous pouvez utiliser:

NSString *firstName = (NSString *)ABRecordCopyValue(aABRecordRef, kABPersonFirstNameProperty); 
NSString *lastName = (NSString *)ABRecordCopyValue(aABRecordRef, kABPersonLastNameProperty); 

Ici, il montre comment Search By Number and Get the image using ABAddressBook.

Mais vous voulez rechercher par prénom et nom. Ainsi, selon le Documentation, vous devez utiliser la méthode -recordsMatchingSearchElement: pour plusieurs arguments.

Une fois que vous obtenez la correspondance de données, vous pouvez extraire l'image en utilisant le code ci-dessous:

CFDataRef imageData = ABPersonCopyImageData(aABRecordRef); 
UIImage *image = [UIImage imageWithData:(NSData *)imageData]; 
CFRelease(imageData); 

espère que vous obtenez quelque chose d'utile de cette situation.

+1

Merci. Cela fonctionne avec ce dont j'avais besoin. – StealthRT

+0

Vous êtes les bienvenus ... StealthRT !! Même j'ai obtenu quelque chose de cette recherche. – Bhavin

+0

@Bhavin puis-je obtenir cette URL de l'image locale du contact ... s'il vous plaît dites si possible –

0

Essayez:

CFStringRef firstName, lastName; // can cast this to NSString * 

firstName = ABRecordCopyValue(aABRecordRef, kABPersonFirstNameProperty); 
lastName = ABRecordCopyValue(aABRecordRef, kABPersonLastNameProperty); 
+1

Merci pour la réponse. Cependant, comment puis-je dire ce qu'il faut rechercher? Est-ce que je ferais juste ** if (firstName == "le prénom ici") {} **? – StealthRT

+0

NE JAMAIS comparer des chaînes comme ça. use -isEqualToString – katzenhut

Questions connexes