2010-07-25 4 views
0

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

+0

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

Répondre

0

Salut il suffit de suivre le lien qu'il a une solution, click here

J'espère que cela vous aidera

+0

Salut, merci pour votre réponse, mais cela ne m'aide pas. Je peux ajouter une image sans problème si l'on n'a pas (et n'a jamais) existé pour un contact. Le problème est qu'il existe une image existante ou une image utilisée pour exister (c'est-à-dire qu'elle a été supprimée en éditant le contact dans l'application du carnet d'adresses). – Marky