Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从Facebook同步获取电话号码;统一信息“;通讯录联系人_Iphone_Ios_Objective C_Cocoa_Abaddressbook - Fatal编程技术网

Iphone 从Facebook同步获取电话号码;统一信息“;通讯录联系人

Iphone 从Facebook同步获取电话号码;统一信息“;通讯录联系人,iphone,ios,objective-c,cocoa,abaddressbook,Iphone,Ios,Objective C,Cocoa,Abaddressbook,我需要能够从用户的通讯簿中读取联系人的电话号码。问题是,如果用户选择通过Facebook同步这些联系人,则无法再通过以下代码访问这些联系人(这对未同步的联系人有效): 然而,日志条目是: [第161行]获取了配置文件:ABMultiValueRef 0x1ddbb5c0,值为0 如果上面的结果都没有给我任何帮助,我怎么知道他们是Facebook用户并获取他们的手机信息呢 来自苹果支持: 我们没有任何将返回统一通讯簿的API 联系方式。但是,您可以检索以下联系人的电话号码: 通过首先使用,在设备上

我需要能够从用户的通讯簿中读取联系人的电话号码。问题是,如果用户选择通过Facebook同步这些联系人,则无法再通过以下代码访问这些联系人(这对未同步的联系人有效):

然而,日志条目是:
[第161行]获取了配置文件:ABMultiValueRef 0x1ddbb5c0,值为0

如果上面的结果都没有给我任何帮助,我怎么知道他们是Facebook用户并获取他们的手机信息呢

来自苹果支持:

我们没有任何将返回统一通讯簿的API 联系方式。但是,您可以检索以下联系人的电话号码: 通过首先使用,在设备上的联系人中显示为统一 ABPersonCopyArrayFallLinkedPeople检索所有链接联系人, 然后遍历这些联系人以获取各自的电话 数字。请注意,中的用户界面中未显示的电话号码 通讯簿API不会返回联系人。请参见下面的示例 允许您这样做的代码片段:

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)在选择person:(ABRecordRef)person后,peoplePickerNavigationController应继续
{
//获取所有链接的联系人
CFArrayRef linkedPerson=abPersonCopyArrayFallLinkedPerson(个人);
//遍历每个链接的联系人以获取电话号码
对于(CFIndex i=0;i
ABMultiValueRef phones = ABRecordCopyValue(record, kABPersonPhoneProperty);
DLog(@"Found %ld phones", ABMultiValueGetCount(phones));
for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++)
{        
    CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);
    CFStringRef locLabel = ABMultiValueCopyLabelAtIndex(phones, j);
    NSString *phoneLabel =(__bridge NSString*) ABAddressBookCopyLocalizedLabel(locLabel);
    NSString *phoneNumber = (__bridge NSString *)phoneNumberRef;
    CFRelease(phoneNumberRef);
    CFRelease(locLabel);
    DLog(@"  - %@ (%@)", phoneNumber, phoneLabel);
    [numbersArr addObject:phoneNumber];
}
// Try to get phone numbers from social profile
        ABMultiValueRef profiles = ABRecordCopyValue(record, kABPersonSocialProfileProperty);
        CFIndex multiCount = ABMultiValueGetCount(profiles);
        for (CFIndex i=0; i<multiCount; i++) {
            NSDictionary* profile = (__bridge NSDictionary*)ABMultiValueCopyValueAtIndex(profiles, i);
            NSLog(@"TESTING - Profile: %@", profile);

        }
        DLog(@"Got profiles: %@", profiles);
        CFRelease(profiles);
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person

{

//Fetch all linked contacts

CFArrayRef linkedPerson = ABPersonCopyArrayOfAllLinkedPeople(person);

//Iterate through each linked contact to fetch the phone numbers

for (CFIndex i = 0; i < CFArrayGetCount(linkedPerson); i++)

{

ABRecordRef contact = CFArrayGetValueAtIndex(linkedPerson,i);

ABMutableMultiValueRef multi = ABRecordCopyValue(contact, kABPersonPhoneProperty);

for (CFIndex i = 0; i < ABMultiValueGetCount(multi); i++)

{

CFStringRef label = ABMultiValueCopyLabelAtIndex(multi, i);

CFStringRef number = ABMultiValueCopyValueAtIndex(multi, i);

CFRelease(label);

CFRelease(number);

}

CFRelease(multi);

}

CFRelease(linkedPerson);

return YES;