如何检查从地址簿中检索的联系人是否没有电话号码?

时间:2011-08-04 10:11:00

标签: iphone objective-c addressbook

我从我的应用中的地址簿中获取联系人,但是当我拿出没有号码的联系人时,我得到了例外。我该怎么办?如何检查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);
    }

1 个答案:

答案 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)上进行测试,直到找到你想要的标签。