我有一个应用程序使用联系人框架来检索有关用户联系人的信息。如果我启动 Apple 联系人应用程序并搜索某些用户,我会获得有关“在其他应用程序中找到”的联系人数据,例如邮件。但是,当我尝试检索代码中的所有联系人时,我没有返回这些用户。
我正在使用以下代码检索联系信息:
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 {
}
}
以下是联系人应用程序中未显示在返回数据中的用户数据的屏幕截图。请注意,如果我只是滚动到它们应该在的位置,这些数据也不会显示在联系人应用程序中。只有当我进行搜索时,它们才会出现。
有谁知道如何使用联系人框架访问这些“在其他应用程序中找到”的联系人?