在我的代码中,我使用ABPeoplePickerNavigationController来选择人员。用户选择从人的联系人列表后,我看,如果指定的个人记录有任何一个电话号码:iOS 6地址簿空kABPersonPhoneProperty
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
ABMutableMultiValueRef phones;
phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (phones == nil || ABMultiValueGetCount(phones) == 0)
{
return NO;
}
// other code....
}
我创建的联系人,添加电话号码,并测试了我的代码。在iOS 5中,此代码运行良好。 电话变量包含一个电话号码。
但在iOS 6中,将联系人链接到Facebook帐户后,电话变量不包含任何值。
解除与facebook账户的联系后,一切都很顺利。
我怎样才能读取人的电话号码这种方法?
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
UPD
如果我在函数返回YES上面,然后在功能
(BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
我可以读正常方式,所有的人的电话号码。那么为什么我不能在第一个函数中读取它们呢?
我认为这个教程将帮助你。 http://blog.slaunchaman.com/2009/01/21/cocoa-touch-tutorial-extract-address-book-address-values-on-iphone-os/ –
具有相同的问题。任何进展? – aryehs