gpt4 book ai didi

iphone - AddressBook kABPersonEmailProperty 对于某些联系人返回 nil

转载 作者:行者123 更新时间:2023-12-03 19:43:52 26 4
gpt4 key购买 nike

我使用以下代码来检索用户选择的人员的电子邮件地址

ABMultiValueRef emailMultiValue = ABRecordCopyValue(person, kABPersonEmailProperty);
NSArray *emailAddresses = (__bridge NSArray*)ABMultiValueCopyArrayOfAllValues(emailMultiValue);

自从 iOS6 和 Facebook 集成以来,一切都运行良好。当我选择未链接到 Facebook 帐户的联系人(这意味着我在 FB 上与该联系人不是 friend )时,一切正常,我检索到 2 个电子邮件地址(工作和家庭)。但是,当我选择通过 Facebook 链接到我的联系人(该联系人还有家庭和工作电子邮件地址以及联系人浏览器中的 Facebook 电子邮件地址)时,emailAddresses 数组为 nil.

有人以前遇到过这个问题或者对此有任何提示吗?

提前致谢!

最佳答案

要过滤掉 Facebook 联系人,您可以检查此人的 kABSourceTypeProperty。如果它返回 kABSourceTypeCardDAV,则它可能来自 Facebook,但它肯定不是本地联系人(它将返回 kABSourceTypeLocal)。

不幸的是,从 iOS 6 开始,没有 Facebook 特定的源类型,因此使用 kABSourceTypeCardDAV 可能会过滤掉您可能真正关心的其他源。无论如何,这里有一些代码;

ABRecordRef source = ABPersonCopySource(person);
NSNumber *sourceTypeRef = (__bridge NSNumber *)((CFNumberRef)ABRecordCopyValue(source, kABSourceTypeProperty)

if ([sourceTypeRef intValue] == kABSourceTypeCardDAV)
; // this is probably, maybe, could be a Facebook contact
if ([sourceTypeRef intValue] == kABSourceTypeLocal)
; // this is definitely a local contact
if ([sourceTypeRef intValue] == kABSourceTypeExchange)
; // this is from an exchange server
// etc...

关于iphone - AddressBook kABPersonEmailProperty 对于某些联系人返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com