ios - 如何使用 Swift 中的联系人框架获取手机号码的所有联系人?

标签 ios swift nspredicate contacts

我正在使用 try contactStore.unifiedContactsMatchingPredicate 和键 CNContactPhoneNumbersKey 但我不确定要使用什么 NSPredicate 来简单地接受所有具有非零 CNContactPhoneNumbersKeyCNContact

最佳答案

您必须枚举整个联系人存储,因为谓词还不够灵活:

var contactsWithPhoneNumber = [CNContact]()
let fetchRequest = CNContactFetchRequest(keysToFetch: [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey])
try! contactStore.enumerateContactsWithFetchRequest(fetchRequest) { contact, stop in
    if contact.phoneNumbers.count > 0 {
        contactsWithPhoneNumbers.append(contact)
    }
}

关于ios - 如何使用 Swift 中的联系人框架获取手机号码的所有联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37449730/

相关文章:

ios - 如何在呈现后更改 Popover ViewController 的大小?

ios - 使用 NSPredicate 用另一个 NSArray 过滤一个 NSArray

ios - 如何从另一个 View 跳转到连接到 Tab Bar Controller 的某个 View ?

ios - 使用纸质入职时出错

ios - 命令/bin/sh 失败,退出代码为 1 和嵌入式 pods 框架

ios - NSPredicate 创建

iOS 核心数据 - NSFetchRequest 和 NSPredicate 不允许双重格式?

ios - 安装配置文件

ios - Dealloc 方法从 XCode 4.1 UIViewController 模板中消失

ios - 无法使用 siri 读取 plist 数据