phone CNContactStore 上的数字谓词

phone number predicate on CNContactStore

我正在 Swift 构建应用程序。我想使用 phoneNumber(作为字符串)创建谓词,并从 CNContactStore 中检索该联系人的姓名(如果存在)。我可以通过 :

很容易地创建一个名称谓词
let pred = CNContact.predicateForContactsMatchingName(name: String)

但是有没有办法对 PhoneNumber 做同样的事情呢?我当然可以获取整个 CNContactStore,遍历它并检索联系人。但是我想知道有没有更好的方法。

简而言之:您不能创建谓词以根据 phone 数字进行过滤。您必须提取所有联系人并进行迭代。注意:对于任何给定的 phone 号码,它 1) 可能不存在于联系人中,或 2) 存在不止一次。

看看这个 post: https://forums.developer.apple.com/thread/19329

致所有看到此内容的人post。 在 iOS11 中,Apple 引入了这种新方法来获取 phone 号码的联系人。 https://developer.apple.com/documentation/contacts/cncontact/3020511-predicateforcontacts

参见: https://nshipster.com/ios-12/