- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序一直与 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/
我在 CNContact 中设置了 imageData 并保存,但是当我调用我保存 headImage 的人时,它不起作用。 CNMutableContact *contact = [[CNMutab
我在通过联系人框架添加联系人时遇到问题。 我使用的是装有 iOS 12.1.2 的 iPhone 5s 设备 我添加联系人的代码如下:: let saveRequest = CNSaveRequest
CNContacts 未从联系人列表中获取所有联系人。一些联系方式丢失了。谁能帮忙。 这是我的代码。 let key = [CNContactGivenNameKey, CNContactFa
我在这里尝试从网络数组中添加新的联系电话,但设备中没有输入数据 CNLabeledValue *homePhone = [CNLabeledValue labeledValueWithLabel:CN
我有一个名为 André 的 v-card 字符串,我用 v-card 初始化了一个 CNContact。 BEGIN:VCARD VERSION:2.1 N:Foo;André;;; FN:Andr
在我的应用中,我想创建一个新联系人。如果已经存在同名联系人,我想将新联系人链接到旧联系人。 我查看了 CNContact 和 CNContactStore 引用资料,但没有看到任何链接联系人的方法。这
最近我从旧的 ABAddressBook 框架切换到新的 CNContacts。在我的项目中,我将本地联系人与我自己的核心数据联系人同步。为此,我使用联系人标识符和电话标识符来同步电话号码。 但我观察
问题: CNContact(新苹果联系人框架)如何获取最后修改日期? 最后修改日期不在 keysToFetch 列表中 我想获取和更新自上次获取以来已修改的联系人。我该怎么做? 最佳答案 根据 App
我正在尝试使用 CNContact 获取我的联系人的电话号码,我希望将该号码作为它的 didgits 的简单字符串,例如 "04xxxxxxxx" 但我能得到的最接近的是以下。 (“联系人”是 CNC
使用 Swift2,我尝试查找属于“工作”组成员的所有联系人,然后返回这些联系人。 创建谓词后。 let workPred = CNContact.predicateForContactsInGrou
在联系人应用程序中,有“iCloud”、“yahoo”、“gmail”等组。在swift中,是否可以仅从gmail源获取联系人? 最佳答案 经过测试的代码。希望它能解决您的问题... func
我是一个敏捷的新手,正在尝试使用 Contacts 框架,但遇到了一个问题:- 我有一个名为 contacts 的 CNContact 数组,键为 givenName、familyName 和 pho
我用来获取联系人电话号码的代码如下,我想做的是将所有联系人电话号码(固定电话、手机等)一起显示,例如 0402 000 000、618 802336、0423 000 000 (一起在一个文本字段中)
是否有任何 CNContact 的 icloud 标识符,我可以在设备上保留和重复使用? 我们的想法是能够从不同的 iOS 设备再次拉出该 CNContact。 文档对此没有任何说明。我知道以前的 A
我有一个应用程序一直与 CNContacts 框架完美配合,一直到 IOS 12。我目前正在使用 IOS 13 beta 测试它,它完全坏了。我检查了联系人权限并删除了应用程序并重新授予权限。这是我用
我们如何获取特定联系地址的地址行 2。我能够使用 成功获取地址行 1 cnContact.postalAddresses.first?.value.street 我们使用什么属性来获取地址行 2? 此
我写了一段代码,用图像保存联系人。我使用 CNContact 类来完成它。保存联系人成功。 联系人在 iOS 的默认联系人应用程序中正确显示缩略图。但我的问题是,当我使用 iOS 的默认联系人应用程序
我似乎无法弄清楚如何从联系人中获取用户“我的名片”。我正在使用 swift 开发原生 Mac 应用程序。 最佳答案 它不是来自(MacOS 10.11 的全新)CNContact,而是 MacOS 的
我有一些代码可以检索用户联系人中的所有电话号码,但我只想过滤掉手机号码。目前,我只是将第一位数字为“+”或第二位数字为“7”的数字添加到数组中,如下所示: func findContacts
我的 iOS 应用程序会不时检查联系人并将新联系人导入自己的数据库。 我通过 identifier 检查联系人是否已存在字段,通常由 UUID 填充: CNContactStore *store =
我是一名优秀的程序员,十分优秀!