【发布时间】:2012-12-11 10:04:14
【问题描述】:
我需要从通讯录中获取记录。我正在使用 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,我的应用程序会崩溃(没有为该人存储电子邮件属性)
谁能解释一下为什么会这样?
谢谢
【问题讨论】:
-
请发布显示的错误
-
@Dpk 错误为 EXC_BAD_ACCESS(code=2, address=0x0)
标签: iphone ios addressbook