繁体   English   中英

从地址簿中获取记录时,应用程序崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM