gpt4 book ai didi

IOS 13 CNContacts 不再检索所有联系人

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:15:11 26 4
gpt4 key购买 nike

我有一个应用程序一直与 CNContacts 框架完美配合,一直到 IOS 12。我目前正在使用 IOS 13 beta 测试它,它完全坏了。我检查了联系人权限并删除了应用程序并重新授予权限。这是我用来检索所有联系人的代码:

NSError* error;

CNContactStore *store = [[CNContactStore alloc]init];

[store containersMatchingPredicate:[CNContainer predicateForContainersWithIdentifiers: @[store.defaultContainerIdentifier]] error:&error];

NSArray *keysToFetch =@[CNContactGivenNameKey, CNContactEmailAddressesKey, CNContactNoteKey];

CNContactFetchRequest *request = [[CNContactFetchRequest alloc]initWithKeysToFetch:keysToFetch];

BOOL success = [store enumerateContactsWithFetchRequest:request error:&error usingBlock:^(CNContact * __nonnull contact, BOOL * __nonnull stop){

NSLog(@"Contact Found: %@", contact.givenName);

}];

联系人存储构建良好,错误为零。但是,当我随后尝试通过获取请求获取联系人时,我得到了 success=NO 并且收到以下错误:

Error Domain=CNErrorDomain Code=102 "(null)" UserInfo={CNKeyPaths=(
note
), CNInvalidRecords=(
"<CNContactFetchRequest: 0x60000189aa00: predicate=(null), keysToFetch=(\n givenName,\n emailAddresses,\n note\n), unifyResults=1, sortOrder=0>"

我已经尝试了各种调整,但我根本无法让它工作。我也找不到任何文件说明此行为已更改。

有没有其他人也尝试过这个或找到了解决方法?

最佳答案

在 iOS 13 中,Apple 添加了一个新的授权,如果您希望访问联系人的备注,则需要该授权。权利是com.apple.developer.contacts.notes .你可以request permission to use this entitlement用于将应用放入 App Store。

添加它的原因主要是出于隐私原因——注释字段可以包含您可能拥有的关于联系人的任何信息;很多时候,这些信息比联系信息要敏感得多。

截至 2019 年 8 月 15 日,该权利处于 beta 类别,这意味着它可能会在 iOS 13 发布之前发生变化,并且该权利的名称可能会在它向开发人员的介绍中稳定下来Xcode.

关于IOS 13 CNContacts 不再检索所有联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com