ios - 如何在 Swift 中获取 CNContact 电话号码作为字符串?

标签 ios swift ios9 contacts addressbook

我正在尝试检索所有联系人的姓名和电话号码,并在 iOS 中使用 Swift 将它们放入数组中。我已经做到了这一点:

func findContacts() -> [CNContact] {

    marrContactsNumber.removeAllObjects()
    marrContactsName.removeAllObjects()

    let store = CNContactStore()

    let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey]

    let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)

    var contacts = [CNContact]()

    do {
        try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in
            contacts.append(contact)

            self.marrContactsName.addObject(contact.givenName + " " + contact.familyName)

            self.marrContactsNumber.addObject(contact.phoneNumbers)

            print(contact.phoneNumbers)
    }
    catch let error as NSError {
        print(error.localizedDescription)
    }

    print(marrContactsName.count)
    print(marrContactsNumber.count)

    return contacts
}

完成后,marrContactsName 包含我所有联系人姓名的数组,完全符合预期。即“John Doe”。但是,marrContactsNumber 返回一组值,如

[<CNLabeledValue: 0x158a19950: identifier=F831DC7E-5896-420F-AE46-489F6C14DA6E,
label=_$!<Work>!$_, value=<CNPhoneNumber: 0x158a19640: countryCode=us, digits=6751420000>>,
<CNLabeledValue: 0x158a19a80: identifier=ECD66568-C6DD-441D-9448-BDEDDE9A68E1,
label=_$!<Work>!$_, value=<CNPhoneNumber: 0x158a199b0: countryCode=us, digits=5342766455>>]

我想知道如何只检索电话号码作为字符串值,即“XXXXXXXXXX”。基本上,如何调用数字值。谢谢!

最佳答案

我找到了解决方案:(contact.phoneNumbers[0].value as!CNPhoneNumber).valueForKey("digits") as!字符串

关于ios - 如何在 Swift 中获取 CNContact 电话号码作为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36343312/

相关文章:

ios - 如何在不在 zip 目录中创建目录的情况下压缩文件?

flash - 我需要使用 Adob​​e AIR 为 iPad 开发什么?

ios - 在 TextView 中查找子字符串的 CGPoint 位置

ios - CFNetwork SSLHandshake iOS 9 失败

javascript - iOS 上滚动问题的粘滞元素

ios - 如何在 Swift 中使用 'FMDB/SQLCipher' 加密和解密?

Swift - 导入模块在一个文件中有效,但在另一个文件中无效

ios - swift闭包在函数中用作参数时是否可以设置默认值?

ios新游戏项目,矩形显示在屏幕外?

ios - 使用 iOS API 创建私有(private)提醒?