ios - 如何找出一个人的父组?

标签 ios addressbook

在MAC平台上,ABPerson类有一个parentGroups属性,告诉我们这个人属于哪个组。但是在IOS平台上,没有这样的方法或属性..

如何找出一个人的父组?我需要一个一个地搜索所有组吗?

谢谢。

最佳答案

另一个线程提到了 ABPersonCopyParentGroups —— 但这是错误的 -n.a.在 iOS 上。

没有 api 调用,所以需要直接执行此操作

ABRecordRef personToFind = ....
ABRecordID id = ABRecordGetRecordID(personToFind);

NSArray *groups = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllGroups(bookRef);
for(ABGroupRef group in groups) {
    NSArray *members = (__bridge_transfer NSArray*)ABGroupCopyAllMembers(group);
    for(ABRecordRef member in members) {
        if(id == ABRecordGetRecordID(member){
            NSLog(@"found in group %@!", ABGroupCopyProperty(group, kABGroupName);
            break;
        }
    }            
}

*内联输入,不保证——可能有错别字!

关于ios - 如何找出一个人的父组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13427161/

相关文章:

ios - 将 ABUnknownPersonViewController 与图像一起使用会崩溃

ios - .local 域和 iOS/OSX

ios - 如何使用 GIDSignIn 或 GIDAuthentication 刷新 authentication.idToken?

ios - 创建一个包含多个项目的 UIView

iphone - 从 iPhone 的地址簿访问联系人?

ios - Cocoa Touch 获取用户全名

iphone - 如何仅使用地址簿中的电子邮件地址访问联系人?

iphone - iOS:如何向号码中带有特殊字符(#/*)的通讯录联系人发起调用?

ios - 文件是为 arm64 构建的,它不是链接的体系结构 (x86_64)

ios - 检查播放器是否在另一个节点之上?