[英]App crashes when fetching record from address book
我需要从地址簿中获取记录。 我正在使用ABPeoplePickerNavigationController这样做。 在获取记录时我会检查条件是否存在检查记录。 例如,检查是否有名字我正在使用以下代码
NSString *fname;
CFTypeRef fnameProperty = ABRecordCopyValue(person, kABPersonFirstNameProperty);
if (ABRecordCopyValue(person, kABPersonFirstNameProperty)) {
fname = (__bridge NSString*)fnameProperty;
}
else{
fname = @"";
}
该代码适用于kABPersonFirstNameProperty。
但是,当我使用以下代码检查电子邮件属性时
ABMultiValueRef emailProperty = ABRecordCopyValue(person, kABPersonEmailProperty);
NSLog(@"%@",emailProperty);
NSString *email;
if (ABRecordCopyValue(person, kABPersonEmailProperty)) {
email = (__bridge NSString*)ABMultiValueCopyValueAtIndex(emailProperty, 0);
}
else {
email = @"";
}
如果kABPersonEmailProperty为nil,则我的应用程序崩溃(没有为该人员存储电子邮件属性)
有人可以解释我为什么会这样吗?
谢谢
这是我的工作版本,看看是否有效。
//Email
NSString* email = nil;
ABMultiValueRef emailNum = ABRecordCopyValue(person,
kABPersonEmailProperty);
if (ABMultiValueGetCount(emailNum) > 0) {
email = (__bridge_transfer NSString*)
ABMultiValueCopyValueAtIndex(emailNum, 0);
} else {
email = @"";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.