1
peoplePickerNavigationController
で選択した連絡先の画像を変更しようとしていますが、連絡先を選択しても画像が変更されず、エラーも表示されません。連絡先の画像を変更するとき
私が知る限り、大丈夫です!何かが欠けています?上記のコードはBOOL以内であることに留意する
ABAddressBookRef aBook = ABAddressBookCreate();
UIImage *img = [UIImage imageNamed:@"90x90.png"];
NSData *dataRef = UIImagePNGRepresentation(img);
CFDataRef cfdata = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
CFErrorRef error;
if(ABPersonRemoveImageData(person, &error)){
NSLog(@"OK");
}
if(ABAddressBookSave(aBook, &error)){
NSLog(@"OK");
}
if(ABPersonSetImageData(person, cfdata, &error)){
NSLog(@"OK");
}
if(ABAddressBookSave(aBook, &error)){
NSLog(@"OK");
}
CFRelease(cfdata);
[self dismissModalViewControllerAnimated:YES];
return NO;
:
これはコードです
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { }
ありがとう!
ABAddressBookRef aBook = ABAddressBookCreate();
NSNumber *recordId = [NSNumber numberWithInteger:ABRecordGetRecordID(person)];
ABRecordRef pID = ABAddressBookGetPersonWithRecordID(aBook,recordId.integerValue);
UIImage *img = [UIImage imageNamed:@"90x90.png"];
NSData *dataRef = UIImagePNGRepresentation(img);
CFDataRef cfdata = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
CFErrorRef error;
ABPersonRemoveImageData(pID, &error);
ABAddressBookSave(aBook, &error);
ABPersonSetImageData(pID, cfdata, &error);
ABAddressBookSave(aBook, &error);
CFRelease(cfdata);
[self dismissModalViewControllerAnimated:YES];
return NO;
ありがとう:、将来的に同じ質問を持っている人のために、解くだけABRecordGetRecordID
とABAddressBookGetPersonWithRecordID
を使用して、以下のコードを次のように管理