无法在iOS 12.4.1(iPhone XR)中使用CNContactStore获取联系人。即使在13 Beta或12.4.1以下的版本中也能很好地工作

问题描述 投票:1回答:1
我正在获取联系人并使用我的自定义UI进行显示。我面临一个奇怪的问题,CNContactStore类没有给我联系人,它返回一个空数组。

下面是我的代码。

let contactStore = CNContactStore() let keysToFetch = [ CNContactFormatter.descriptorForRequiredKeys(for: .fullName), CNContactGivenNameKey, CNContactMiddleNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey ] as [Any] //Get all the containers var allContainers: [CNContainer] = [] do { allContainers = try contactStore.containers(matching: nil) } catch let errorToShow{ //Handling error }

我的代码适用于12.4.1以下版本,并且在iOS 13中为所有beta版本。现在,我正在iPhone XR中对其进行测试。

我正在获取联系人并使用我的自定义UI进行显示。我面临一个奇怪的问题,CNContactStore类没有给我联系人,它返回一个空数组。下面是我的代码。让...

ios swift xcode ios12 cncontactstore
1个回答
0
投票
我尝试了以下代码,但未进行任何info.plist更改,并且在iOS 13及更低版本中正常运行。 (从iOS 13开始,我们需要在plist中添加密钥才能访问Note,就我而言,我不想这样做。)>

if let keysToFetch = [ CNContactFormatter.descriptorForRequiredKeys(for: .fullName),CNContactGivenNameKey, CNContactMiddleNameKey, CNContactFamilyNameKey,CNContactPhoneNumbersKey] as? [CNKeyDescriptor]{ let request = CNContactFetchRequest(keysToFetch: keysToFetch) do { try contactStore.enumerateContacts(with: request){ (cont, stop) in // Array containing all unified contacts from everywhere } } catch let errorToShow{ } }

© www.soinside.com 2019 - 2024. All rights reserved.