我正在用 Swift 构建一个应用程序。我想使用phoneNumber
(作为字符串)进行谓词,并从CNContactStore
. 我可以通过以下方式相当容易地制作名称谓词:
let pred = CNContact.predicateForContactsMatchingName(name: String)
但是有没有办法对PhoneNumber
. 我当然可以获取整个CNContactStore
,遍历它并检索联系人。但我想知道是否有更好的方法。
我正在用 Swift 构建一个应用程序。我想使用phoneNumber
(作为字符串)进行谓词,并从CNContactStore
. 我可以通过以下方式相当容易地制作名称谓词:
let pred = CNContact.predicateForContactsMatchingName(name: String)
但是有没有办法对PhoneNumber
. 我当然可以获取整个CNContactStore
,遍历它并检索联系人。但我想知道是否有更好的方法。
对于任何看到这篇文章的人。在 iOS11 中,Apple 引入了这种通过电话号码获取联系人的新方法。 https://developer.apple.com/documentation/contacts/cncontact/3020511-predicateforcontacts
简而言之:您不能创建一个谓词来根据电话号码进行过滤。您必须拉出所有联系人并进行迭代。注意:对于任何给定的电话号码,它 1) 可能不存在于联系人中,或 2) 存在不止一次。