iphone - 获取通讯录中的所有群组名称

标签 iphone ios abaddressbook

如何获取联系人中保存的所有组名?以下是我的代码供您引用:

NSMutableArray *list = [NSMutableArray array];
ABAddressBookRef myAddressBook = ABAddressBookCreate();
CFArrayRef allSources = ABAddressBookCopyArrayOfAllGroups(myAddressBook);

list = [NSMutableArray arrayWithArray: (__bridge NSArray*) allSources];

NSLog(@"GROUPS %@",[list objectAtIndex:0]);

NSLog 返回 a 但我需要自己获取组名。

谢谢。

最佳答案

使用 ABRecordCopyCompositeName() 函数。

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
if (addressBook != NULL) {
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
        if (granted) {
            CFArrayRef allGroups = ABAddressBookCopyArrayOfAllGroups(addressBook);
            if (allGroups != NULL) {
                NSMutableArray *names = [NSMutableArray array];
                for (int i = 0; i < CFArrayGetCount(allGroups); i++) {
                    ABRecordRef group = CFArrayGetValueAtIndex(allGroups, i);
                    CFStringRef name = ABRecordCopyCompositeName(group);
                    [names addObject:(__bridge NSString *)name];
                    CFRelease(name);
                }
                NSLog(@"names = %@", names);
                CFRelease(allGroups);
            }
        }
        CFRelease(addressBook);
    });
}

关于iphone - 获取通讯录中的所有群组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169617/

相关文章:

ios - 代码错误 : cannot overwrite dSYM file

iphone - UIWebView 的 cookie 存储在哪里?

ios - 在 Objective-C 的 TableView 中给出没有任何部分的部分索引以对单个 NSArray 进行排序?

ios - 在 ios9 中为 CNContactPickerViewController 设置什么 displayedPropertyKeys

ios - 如何以编程方式检测 iPhone 6 或 iPhone 6 Plus View 尺寸模式

iphone - 使用剪辑的单点触摸旋转

ios - UIImagePickerController 偶尔死机

ios - 如何打开特定联系人的编辑联系人屏幕

ios - 如何从地址簿中检索 'self'

objective-c - ABAddressBookCopyArrayOfAllPeople 中缺少联系人