【问题标题】:iOS: Address Book not importing mobile phone for certain contactsiOS:地址簿不为某些联系人导入手机
【发布时间】:2014-05-04 20:32:07
【问题描述】:

我想从通讯录中获取选定联系人的电话号码,然后拨打该号码,但对于某些联系人,这是实现的,而对于其他人,返回的电话号码为 NULL!我检查了我的手机以查看 2 个联系人之间的差异(其中一个,代码返回正确的号码,而另一个,它返回 NULL)我可以看到绝对没有区别(两个联系人都有名字,姓氏,和手机号码)。我对发生这种情况的原因以及获取电话号码的解决方案感兴趣。可用时的联系人。提前致谢!

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray* phoneNumbers = (__bridge NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty);
CFRelease(phoneNumberProperty);
if (phoneNumbers[0] != NULL) {;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt:%@", phoneNumbers[0]]]];
}
[self dismissViewControllerAnimated:YES completion:nil];
return NO;

}

【问题讨论】:

    标签: ios objective-c addressbookui


    【解决方案1】:

    我想我可能知道问题所在,但没有查看您的示例数据,这只是一种预感。

    您的联系人之一为空的原因是,对于该用户,他的地址簿中可能列出了 2 个电话号码。一个电话号码为空白/无值,而另一个电话字段确实有值(对于同一联系人)。

    查看您的代码。检查每个联系人的这个数组的大小

    NSArray* phoneNumbers;
    [phoneNumbers count];
    

    如果其中一个返回 2,那么您知道该用户的数组中有两个电话号码,您需要检查

    phoneNumbers[0]
    phoneNumbers[1]
    

    【讨论】:

    • 我试过这个,但还是不行:对于一些有1个/多个电话号码的联系人,数组包含0个元素!与模拟器中生成的联系人完美配合...
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    相关资源
    最近更新 更多