2016-12-24 9 views
3

したがって、このコードは正常に動作しますが、predicateForContactsパラメータで名前を指定した場合に限ります。CNContact.predicateForContactsを使用してすべての連絡先を取得する方法は?

私はアドレス帳に記載されている人の名前をすべて取得したいと考えています。

+2

ドキュメントを読む! https://developer.apple.com/reference/contacts/cncontactstore/1403266-unifiedcontacts「すべての連絡先を取得するには...」で始まる文に注意してください。 – matt

答えて

10

アドレス帳に記載されているすべての名前を取得したいと思います。

CNContactFetchRequestを入力して、希望するキーが名前であることを指定し、enumerateContacts(with:usingBlock:)を呼び出します。

let req = CNContactFetchRequest(keysToFetch: [ 
     CNContactFamilyNameKey as CNKeyDescriptor, 
     CNContactGivenNameKey as CNKeyDescriptor 
    ]) 
    try! CNContactStore().enumerateContacts(with: req) { 
     contact, stop in 
     print(contact) // in real life, probably populate an array 
    } 
関連する問題