2012-01-03 24 views
6
でクラッシュを与える
ABRecordSetValue(person, kABPersonPhoneProperty, (__bridge CFTypeRef)phoneNum, nil); 
ABRecordSetValue(person, kABPersonEmailProperty, (__bridge CFTypeRef)eMailId, nil); 

これらの2行をコメント(電子メールと電話エントリなし、AdressBookにエントリを保存する)適切な出力が得られます。 しかし、実行中に失敗し、プログラムがクラッシュします。バールのためアドレス帳に電話番号やメールアドレスを追加するiPhoneApp

値は以下のとおりです。

PHONENUM:000-000-0000

EMAILID[email protected]

エラーの種類:EXC_BAD_ACCESS

任意のアイデア? さらに詳しい情報が必要ですか?

+0

は、あなたが実際にやってみたいんinformation.What詳細を提供してくださいすることができますか..? – Kamarshad

答えて

16

ヴァルスを定義する場所とタイプを確認するとよいでしょう。これらの行の前にアドレス帳を公開しているかもしれません。 (たとえばCFRelease(multiPhone);) 私が知る限り、phoneNumemailIDABMutableMultiValueRefである必要があります。私はそれをやったか、少なくともそれがあった。このことができます

ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
    ABMultiValueAddValueAndLabel(multiEmail, @"[email protected]", kABWorkLabel, NULL); 
    ABRecordSetValue(person, kABPersonEmailProperty, multiEmail, &error); 
    CFRelease(multiEmail); 

詳細情報・ホープ

Address Book tutorial上:電子メールの追加単一電話番号

ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType); 

ABMultiValueAddValueAndLabel(multiPhone, [self.contact telephone], kABPersonPhoneMobileLabel, NULL);    
ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone,nil); 

を追加

+0

電話番号とメールIDを1つだけ設定する必要があります。私は両方ともNSString *型を取り、それをCFStringRefに変換しました。 – viral

+0

私の答えを編集しました。しかし、メールIDはどういう意味ですか?メールアドレスとは違うもの? –

3

が、私はそれが参考になっかもしれホープこの

ABAddressBookRef addressBook = ABAddressBookCreate(); 

ABRecordRef person = ABPersonCreate(); 


ABMutableMultiValueRef phoneNumberMultiValue 

=ABMultiValueCreateMutable(kABPersonPhoneProperty); 

//phoneNumber is the number to be save in Address Book 


ABMultiValueAddValueAndLabel(phoneNumberMultiValue ,phoneNumber,kABPersonPhoneMobileLabel, NULL); 

//EmailId is the emailId to be save in Address Book 

ABMultiValueAddValueAndLabel(phoneNumberMultiValue ,EmailId,kABPersonPhoneMobileLabel, NULL); 

ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue,nil); 

// set the phone number property 

ABAddressBookAddRecord(addressBook, person, nil); 

ABAddressBookSave(addressBook, nil); 

CFRelease(person); 

をお試しください...

+1

助けてくれてありがとう...、 – viral

+0

あなたはようこそ... – Kamarshad

関連する問題