我正在尝试获取显示特定“namePrefix”(例如先生、夫人或小姐等)的所有联系人的列表。然而,却碰上了一堵砖墙。
我将以下代码与 Predicate 一起使用来获取名称搜索的结果,这很好......
let store = CNContactStore()
let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactNamePrefixKey, CNContactPhoneNumbersKey]
// Predicate = prob...? How get namePrefix
let predicate = CNContact.predicateForContactsMatchingName("James")
do {
let fetchedContacts = try store.unifiedContactsMatchingPredicate(predicate, keysToFetch: keysToFetch)
for result in fetchedContacts {
print("\(result.givenName) \(result.familyName) \(result.phoneNumbers) \(result.namePrefix)")
}
} catch {
print("Error unable to fetch")
}
但是,我需要“namePrefix”。Apple 文档显示 namePrefix 可作为属性使用,但经过反复试验,无法找到一种方法来使用它来使用“谓词”过滤我的结果。我认为使用...“predicateForContactsWithIdentifiers”可能有可能,但找不到示例。
我想知道 namePrefix 过滤器是否可以通过上面的谓词行以某种方式完成?或者如果不能用“predicateForContactsWithIdentifiers”来完成?
我知道苹果不允许海关除...
predicateForContactsMatchingName // predicateForContactsInContainerWithIdentifier predicateForContactsWithIdentifiers // predicateForContactsInGroupWithIdentifier
但是,如果直接根不可用,我正在寻找解决方法......?
提前谢谢了。