将电话号码和电子邮件添加到地址簿会导致iPhoneApp崩溃

前端之家收集整理的这篇文章主要介绍了将电话号码和电子邮件添加到地址簿会导致iPhoneApp崩溃前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
ABRecordSetValue(person,kABPersonPhoneProperty,(__bridge CFTypeRef)phoneNum,nil);
ABRecordSetValue(person,kABPersonEmailProperty,(__bridge CFTypeRef)eMailId,nil);

注释这两行可以提供正确的输出(将条目保存到AdressBook,无需电子邮件和电话输入).
但是,在执行过程中它会失败并导致程序崩溃.

Vars的价值是:

phoneNum:000-000-0000

eMailId:AbcdefghIjklm@qwertyuiopasdfghjk.com

错误类型:EXC_BAD_ACCESS

任何的想法?
或者还需要更多信息?

解决方法

很高兴看到你定义变量的位置和类型.您可能还在这些行之前发布了地址簿. (例如CFRelease(multiPhone);)
据我所知,phoneNum和emailID应该是ABMutableMultiValueRef.至少我是这样做的:

添加一个电话号码

ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);

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

添加电子邮件

ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
    ABMultiValueAddValueAndLabel(multiEmail,@"abc@abc.com",kABWorkLabel,NULL);
    ABRecordSetValue(person,multiEmail,&error);
    CFRelease(multiEmail);

有关Address Book tutorial的更多信息

希望这可以帮助.

猜你在找的iOS相关文章