J'utilise ABPeoplePickerNavigationController
pour le tableau de représentation des contacts. En tapant sur le contact, je dois définir une nouvelle image pour cela. J'ai ajouté du code à déléguer pour changer les données d'une personne, mais je ne peux pas changer d'image. Aucune suggestion?Définir l'image pour contacter iOS
Ceci est mon code ci-dessous:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
NSData *dataRef = UIImagePNGRepresentation(self.theImage);
CFDataRef cfdata = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
CFErrorRef error;
ABPersonRemoveImageData(person, &error); // clean any image first from ref
if (ABAddressBookSave(_addressBook, &error))
{
ABPersonSetImageData(person, cfdata, &error);
ABAddressBookSave(_addressBook, &error);
}
CFRelease(cfdata);
[self dismissViewControllerAnimated:YES completion:nil];
return NO;
}
J'ai téléchargé échantillon d'ici: link
Pour vérifier comment cela fonctionne, vous pouvez télécharger le code et modifier ci-dessous délégué avec mon code.
merci pour vos commentaires J'ai mis à jour ma question avec le code basé sur vos commentaires mais je ne vois toujours pas cette image apparaît dans mon contact. J'ai vérifié cfdata, personne, _addressBook tous d'entre eux ont de la valeur –
j'ai ajouté un lien vers les sources d'où je l'ai téléchargé –
Je pense avoir utilisé une référence de carnet d'adresses différente. Je reçois une instance de carnet d'adresses de ABPeoplePickerNavigationController et cela fonctionne bien. Merci –