iOS 5以降のアドレス帳からプログラムでメールと電話番号の値を取得したい. 次のコードを試しました。姓と名は変更されますが、メールアドレスと電話番号は変更されません。これが私のコードです
ABAddressBookRef addressBook=ABAddressBookCreate();
ABRecordRef record = ABAddressBookGetPersonWithRecordID(addressBook, [userInfo.userId intValue]);
NSNumber *recordId = [NSNumber numberWithInteger:ABRecordGetRecordID(record)];
NSLog(@"recordId:- %d",[recordId intValue]);
// First & Last name
ABRecordSetValue(record, kABPersonFirstNameProperty, (__bridge void*)userInfo.firstName , nil);
ABRecordSetValue(record, kABPersonLastNameProperty, (__bridge void*)userInfo.lastName, nil);
//Phone number is a list , so create a multivalue
ABMutableMultiValueRef phoneNumberMultiValue =
ABMultiValueCreateMutable(kABPersonPhoneProperty);
ABMultiValueAddValueAndLabel(phoneNumberMultiValue ,(__bridge void*)userInfo.phoneNumbers,(__bridge void*)userInfo.phoneNumberLabel, NULL);
// Email address is a list , so create a multivalue
ABMutableMultiValueRef emailMultiValue =
ABMultiValueCreateMutable(kABPersonEmailProperty);
ABMultiValueAddValueAndLabel(emailMultiValue ,(__bridge void*)userInfo.emailAddress,(__bridge void*)userInfo.emailAddressLabel, NULL);
// Save Address Book
BOOL isContactEdited = ABAddressBookSave(addressBook, nil);
CFRelease(addressBook);
return isContactEdited;
上記のコード phonenumberlabel & emailAddressLabel では、 phone number & email address のラベル値です。例: 「モバイル」または「ホーム」など。
名と姓に使用されるような複数値参照を設定する方法が見つかりません。どんな種類の助けも大歓迎です。ありがとう。