我的目的是处理图片库中的一张图片,并将这张图片直接保存到从地址簿中选择的一个人记录(即“汤姆”)中,我可以看到新图片替换了汤姆以前的图片,但我可以不将其保存到地址簿。
我实现了委托 ABPeoplePickerNavigationControllerDelegate,并使用以下逻辑,但无论我尝试什么,修改的记录都无法保存到通讯簿。
任何线索或建议?谢谢
ABAddressBookRef addressBook= ABAddressBookCreate();
CFErrorRef error = NULL;
BOOL wantToSaveChanges = YES;
ABRecordSetValue(person, kABPersonFirstNameProperty, @"Shi", &error);//, &error)
NSData * dataRef = UIImagePNGRepresentation(cellImage);
ABPersonSetImageData(person, dataRef, &error);
if (ABAddressBookHasUnsavedChanges(addressBook)) {\
NSLog(@"need to save ");
if (wantToSaveChanges) {
ABAddressBookSave(addressBook, &error);
} else {
ABAddressBookRevert(addressBook);
}
}else {
NSLog(@"no changes");
}
if (error != NULL) {/*... Handle error. ...*/
NSLog(@"error happened here " );
}
CFRelease(addressBook);