我有一个使用“联系人框架”的应用程序来检索有关用户联系人的信息。如果我启动Apple Contacts应用程序并搜索某些用户,我会获得有关“在其他应用程序中找到”的联系人的数据,例如Mail。但是,当我尝试检索代码中的所有联系人时,我不会让这些用户返回。
我正在使用以下代码检索联系信息:
let store = CNContactStore()
store.requestAccess(for: .contacts) { (success, error) in
if success == true {
let keysToFetch: [CNKeyDescriptor] = [
CNContactFormatter.descriptorForRequiredKeys(for: .fullName),
CNContactEmailAddressesKey as CNKeyDescriptor,
CNContactPhoneNumbersKey as CNKeyDescriptor,
CNContactInstantMessageAddressesKey as CNKeyDescriptor,
CNContactPostalAddressesKey as CNKeyDescriptor,
CNContactThumbnailImageDataKey as CNKeyDescriptor]
let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)
fetchRequest.mutableObjects = true
fetchRequest.unifyResults = true
fetchRequest.sortOrder = .userDefault
do {
try store.enumerateContacts(with: fetchRequest, usingBlock: { (contact, stop) -> Void in
// Process results here...
} catch {
}
}
以下是“联系人”应用中的用户数据的屏幕截图,该应用未显示在返回的数据中。请注意,如果我只是滚动到它们应该的位置,此数据也不会显示在“联系人”应用中。它们只在我搜索时才存在。
是否有人知道如何使用“联系人框架”访问“在其他应用程序中找到的”这些联系人?