我的目的是从图像库处理一个图像,并将此图像直接保存到从AddressBook中选择的一个人记录(即,“Tom”),我可以看到新图像取代了Tom的上一个图像,但我无法将其保存到AddressBook。
我实现了委托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);