CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决

Posted 大熊猫侯佩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决相关的知识,希望对你有一定的参考价值。

概览

在 CoreData 将数据模型通过 CloudKit 自动同步到 iCloud 之后,在 CloudKit Console 对应容器的查询页面中,查询已经同步到 iCloud 的数据时,有可能会提示 Field ‘recordName’ is not marked queryable 错误:

这是什么原因,又该如何解决呢?

其实非常简单!

废话少叙,Let‘s go!

解决办法

简单来说,这是因为对应数据类型中 recordName 属性未做索引的原因。

拿上面的栗子来说,CloudKit 数据表 CD_KnowledgeBall 之所以不能查询到数据,是因为它的 recordName 属性没有加上 QUERYABLE 索引。

在 CloudKit Console 对应容器的页面左侧点击 Schema 中的 Indexes 菜单项,然后点击右侧窗口中对应的数据类型,这里是 CD_KnowledgeBall:

滚动到列表底部,点击 Add Basic Index 按钮,这会在列表底部新添加一条项目:

展开新项目的 Select an option… 菜单,选择 recordName 属性:

接着,设置 recordName 属性的索引类型为 Queryable:

最后,点击右侧窗口右上角的 Save Changes 按钮,保存修改。

再次尝试查找 CD_KnowledgeBall 表中的数据,这回你会发现如愿以偿了:

注意,我们必须根据数据在iCloud中实际的位置,选择正确的Database(公有或私有)、正确的 Zone 以及正确的 RECORD TYPE 名称,才能确保可以最终取得所保存的数据。

总结

在本篇博文中,我们详细介绍了CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决步骤,你值得拥有!

感谢观赏,再会。😎

以上是关于CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CloudKit 查询和获取数据?

如何在 CloudKit JS 中查询元数据?

如何使用 CloudKit 查询条件 segues?

如何使用查询快速获取 cloudkit 数据

在 Google Apps 脚本中使用 CloudKit Web 服务 API 查询 CloudKit 公共数据库时的 AUTHENTICATION_FAILED

CloudKit 数据库查询问题