我从我的应用中的地址簿中获取联系人,但是当我拿出没有号码的联系人时,我得到了例外。我该怎么办?如何检查nil的联系电话?! 如何检查从地址簿中检索的联系人是否没有电话号码?
ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueCopyValueAtIndex(multi, 0)) {
NSLog(@"No number available");
cont.number=@"No number available";
}
else {
cont.number = (NSString*)ABMultiValueCopyValueAtIndex(multi, 0);
}
答案 0 :(得分:2)
此代码最初来自iPhoneDevSDK。我修改了一些:
ABMultiValueRef phones =(NSString*)ABRecordCopyValue(
person, kABPersonPhoneProperty);
CFIndex numPhoneNums = ABMultiValueGetCount(phones);
if(numPhoneNums == 0) {
NSLog(@"No number available");
cont.number = @"No number available";
} else {
cont.number = (NSString*) ABMultiValueCopyValueAtIndex(phones, 0);
}
请注意,这将为您提供第一个电话号码(如果存在)。如果你想得到一个特定的标签,那么你需要循环,在ABMultiValueCopyLabelAtIndex(phones, i)
上进行测试,直到找到你想要的标签。