【问题标题】:How to check if a contact retrieved from the address book doesn't have phone number?如何检查从通讯录中检索到的联系人是否没有电话号码?
【发布时间】:2011-08-04 10:10:59
【问题描述】:

我从我的应用程序的通讯录中获取联系人,但是当我取出一个没有号码的联系人时,我得到了一个例外。我该怎么办?如何查看零的联系电话?! 如何检查从通讯录中检索到的联系人是否没有电话号码?

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);
    }

【问题讨论】:

    标签: iphone objective-c addressbook


    【解决方案1】:

    此代码最初来自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) 上进行测试,直到找到你想要的标签。

    【讨论】:

    • 这个号码根本没有检索到
    • 尝试删除“电话”的 (NSString *) 类型转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多