2011-11-16 13 views
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; 

ありがとう:、将来的に同じ質問を持っている人のために、解くだけABRecordGetRecordIDABAddressBookGetPersonWithRecordIDを使用して、以下のコードを次のように管理

答えて

0

関連する問題