如何写在Facebook / Twitter的地址簿在iOS?

在我的应用程序中,我将一些数据导出到地址簿中,以创build一些新的联系人条目。 我可以出口我想要的一切,没有问题,除了Facebook和Twitter地址。 我完全失去了这两个。

以下是我用来导出非Facebook / Twitter数据的代码:

ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)(thePhoneMobile), kABPersonPhoneMobileLabel, NULL); ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)(thePhoneHome), kABHomeLabel, NULL); ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone, NULL); CFRelease(multiPhone); 

以下是我如何导出不工作的Facbeook:

 ABMutableMultiValueRef multiSocial = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(multiSocial, (__bridge CFTypeRef)(theFacebook), kABPersonSocialProfileServiceFacebook, NULL); ABRecordSetValue(newPerson, kABPersonSocialProfileProperty, multiSocial, NULL); CFRelease(multiSocial); 

我哪里错了?

设置社交档案由于某种原因是非常棘手的,但这是必要的代码:

 ABMultiValueRef multiSocial = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType); ABMultiValueAddValueAndLabel(multiSocial, (__bridge CFTypeRef)([NSDictionary dictionaryWithObjectsAndKeys:(NSString *)kABPersonSocialProfileServiceFacebook, kABPersonSocialProfileServiceKey, theFacebook, kABPersonSocialProfileUsernameKey,nil]), kABPersonSocialProfileServiceFacebook, NULL); ABRecordSetValue(newPerson, kABPersonSocialProfileProperty, multiSocial, NULL); 

根据文档,社交configuration文件是一个kABMultiDictionaryPropertyType,而不是kABMultiStringType。

这也意味着您需要将字典添加到multiSocial ,而不是string。 这个格式对我来说没有意义,所以只要你需要使用它就复制和粘贴。

然后,你把它设定成你以前的样子。