我需要从通讯录中获取记录。我正在使用 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,我的应用程序崩溃(没有为该人存储电子邮件属性)
有人可以解释一下为什么会这样吗?
谢谢