ios - ABRecordRef 检查记录是否仅限 Facebook?

标签 ios abrecord

循环遍历所有地址簿联系人时,是否有办法查看某条记录是否仅限 Facebook 记录?这是在 iOS 设置中添加 Facebook 时插入的通讯录记录。

我试图跳过这些记录,只查看用户输入的或从其他来源同步的记录。

谢谢

最佳答案

使用此代码片段,您可以检测 Facebook 联系人:

+ (BOOL)isPersonFacebookContact:(ABRecordRef)person {
    ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty);

    BOOL returnValue = NO;

    if (instantMessage) {
        for (NSInteger i=0 ; i < ABMultiValueGetCount(instantMessage); i++) {
            CFDictionaryRef instantMessageValue = ABMultiValueCopyValueAtIndex(instantMessage, i);
            CFStringRef instantMessageString = CFDictionaryGetValue(instantMessageValue, kABPersonInstantMessageServiceKey);

            if (CFStringCompare(instantMessageString, kABPersonInstantMessageServiceFacebook, 0) == kCFCompareEqualTo) {
                returnValue = YES;
            }

            CFRelease(instantMessageString);
            CFRelease(instantMessageValue);
        }
    }

    CFRelease(instantMessage);

    return returnValue;
}

关于ios - ABRecordRef 检查记录是否仅限 Facebook?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147962/

相关文章:

ios - Swift TableView 人口

objective-c - iOS:有什么方法可以检查属性名称是私有(private)名称还是保留名称?

ios - iOS:不推荐使用的元素会继续在旧版应用程序中工作吗?

ios - 如何使用 Monotouch 或 Xcode 4.2 对 PDF 文件进行数字签名?

objective-c - 在Objective-C中定时和重复执行线程

Swift:将用户在 ABPersonViewController 中选择的信息复制到字典中

swift - 从 CFArray 获取值时出错

ios - ABAddressBookGetPersonWithRecordID 使我的应用程序崩溃

ios - 在 iOS 中从 ABRecordID 加载 ABRecordRef