如何访问“在应用程序中找到”的iOS联系人?

时间:2017-01-19 15:30:05

标签: ios contacts-framework

我有一个使用“联系人框架”的应用程序来检索有关用户联系人的信息。如果我启动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 {

    }
}

以下是“联系人”应用中的用户数据的屏幕截图,该应用未显示在返回的数据中。请注意,如果我只是滚动到它们应该的位置,此数据也不会显示在“联系人”应用中。它们只在我搜索时才存在。

是否有人知道如何使用“联系人框架”访问“在其他应用程序中找到的”这些联系人?

enter image description here

0 个答案:

没有答案