Je suis coincé et je ne sais pas quoi faire. Les docs sur les pommes ne semblent pas très bien couvrir ça.ABPersonSetImageData fonctionne si aucune image, ne fait rien si l'image existe
Mon code:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
NSDictionary *info = [self selectedProjectInfo];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFErrorRef error = nil;
if (ABPersonSetImageData(person, (CFDataRef)(UIImageJPEGRepresentation([UIImage imageWithContentsOfFile:[info objectForKey:@"ImagePath"]], 1.0f)), &error))
{
ABAddressBookAddRecord(addressBook, person, &error);
NSLog(@"Set contact photo %@", error);
if (ABAddressBookHasUnsavedChanges(addressBook))
{
NSLog(@"Changes made to address book");
}
else {
NSLog(@"No changes made to address book");
}
if (ABAddressBookSave(addressBook, &error))
{
NSLog(@"Saved");
UIAlertView *contactSuccessAlert = [[UIAlertView alloc] initWithTitle:@"Success" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[contactSuccessAlert show];
[contactSuccessAlert release];
}
else {
NSLog(@"Not saved");
}
}
else {
NSLog(@"Error saving contact photo %@", error);
}
CFRelease(addressBook);
[self.navigationController dismissModalViewControllerAnimated:YES];
return NO;
}
Il fonctionne très bien s'il n'y a pas d'image existante dans le contact, mais si l'on existe déjà est pas remplacée. Est-ce que quelqu'un sait ce que je devrais faire?
Un grand merci à l'avance
Aussi juste remarqué ne fonctionne pas si je mets l'image, supprimer dans l'application de contacts, puis essayez de définir à partir de mon application à nouveau! hmm ... – Marky