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

时间:2016-05-26 00:32:54

标签: ios swift nspredicate contacts

我使用try contactStore.unifiedContactsMatchingPredicate使用密钥CNContactPhoneNumbersKey,但我不确定使用NSPredicate来简单地接受所有CNContact非零CNContactPhoneNumbersKey

1 个答案:

答案 0 :(得分:1)

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

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)
    }
}