ios - 获取姓名和号码联系人列表地址簿

标签 ios objective-c addressbook abaddressbook

我正在尝试 NSLog 地址簿中联系人的姓名和号码。 我成功记录了名称,但没有成功解决数字问题。

这是我的代码:

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
if (addressBook != NULL) {
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
        if (granted) {
            CFArrayRef allNames = ABAddressBookCopyArrayOfAllPeople(addressBook);

            if (allNames != NULL) {
                NSMutableArray *names = [NSMutableArray array];
                for (int i = 0; i < CFArrayGetCount(allNames); i++) {
                    ABRecordRef group = CFArrayGetValueAtIndex(allNames, i);
                    CFStringRef name = ABRecordCopyCompositeName(group);
                    [names addObject:(__bridge NSString *)name];
                    CFRelease(name);
                }


                NSLog(@"names = %@", names);
                CFRelease(allNames);
            }
        }
        CFRelease(addressBook);
    });
}

也许我必须创建 NSDictionnary ?不知道怎么解决...

最佳答案

电话号码是一个ABMultiValueRef:

ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (phones != NULL) {
    for (NSInteger index = 0; index < ABMultiValueGetCount(phones); index++) {
        NSString *phone = CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, index));
        NSString *label = CFBridgingRelease(ABMultiValueCopyLabelAtIndex(phones, index));  // either kABHomeLabel or kABPersonPhoneMainLabel or ...
        // do something with `phone` and `label`
    }
    CFRelease(phones);
}

关于ios - 获取姓名和号码联系人列表地址簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31627047/

相关文章:

objective-c - 在 iOS 上访问最近通话

ios - 如何创建地址簿和联系人

ios - Unresolved 标识符 NavigationButton 错误

ios - 自定义可折叠 View

iphone - 以编程方式将图像粘贴到图像上

ios - 为什么存储对 NSManagedObject 的引用会阻止它更新?

ios - ABNewPersonViewController 在本地保存联系人

iphone - 如何使用来自 iPhone 应用程序的 FBConnect 在我的 feed-post 中包含一个链接?

ios - AFNetworking 3.0 和使用 setSessionDidReceiveAuthenticationChallengeBlock 的 SSL 身份验证

ios - 我可以在 iOS 中自定义推送通知的外观吗?