vir*_*ral 6 iphone objective-c abaddressbook ios
ABRecordSetValue(person, kABPersonPhoneProperty, (__bridge CFTypeRef)phoneNum, nil);
ABRecordSetValue(person, kABPersonEmailProperty, (__bridge CFTypeRef)eMailId, nil);
Run Code Online (Sandbox Code Playgroud)
注释这两行可以提供正确的输出(将条目保存到AdressBook,无需电子邮件和电话输入).但是,在执行过程中它会失败并导致程序崩溃.
Vars的价值是:
phoneNum:000-000-0000
eMailId:AbcdefghIjklm@qwertyuiopasdfghjk.com
错误类型:EXC_BAD_ACCESS
任何的想法?或者还需要更多信息?
Ere*_*şel 16
很高兴看到你定义变量的位置和类型.您可能还在这些行之前发布了地址簿.(例如CFRelease(multiPhone);),而且据我所知,phoneNum而emailID应该是ABMutableMultiValueRef.至少我是这样做的:
添加一个单一的电话号码
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiPhone, [self.contact telephone], kABPersonPhoneMobileLabel, NULL);
ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone,nil);
Run Code Online (Sandbox Code Playgroud)
添加电子邮件:
ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiEmail, @"abc@abc.com", kABWorkLabel, NULL);
ABRecordSetValue(person, kABPersonEmailProperty, multiEmail, &error);
CFRelease(multiEmail);
Run Code Online (Sandbox Code Playgroud)
有关地址簿教程的更多信息
希望这可以帮助.