查询具有多种记录类型的 CloudKit 数据库
Posted
技术标签:
【中文标题】查询具有多种记录类型的 CloudKit 数据库【英文标题】:Query CloudKit database with multiple record types 【发布时间】:2015-02-15 23:41:39 【问题描述】:我设置了一个云工具包数据库,并尝试对其进行查询。看起来谓词不适用于我正在尝试做的事情。
在 SQL 中,查询看起来像这样:
选择类型 1 从表 1、表 2 WHERE table1.columnA = table2.columnB
还有,类似于:
NSPredicate(format: "%K == %K" "key1", "key2") but that doesn't work either.
再次,因为我正在尝试匹配关键值,我认为谓词不会起作用。有人有解决办法吗?
【问题讨论】:
【参考方案1】:您不能在 CloudKit 中使用一个查询来查询多个记录类型。您需要先查询 1 个记录类型,然后使用该结果查询第二个记录类型。您建议的谓词仅在两个字段位于同一记录类型中时才有效
【讨论】:
似乎缺少一个基本的数据库功能。我最终将要查询的信息作为变量传递,然后适当地编写谓词。 这在 nosql 数据库中很常见。简洁的解释见en.wikipedia.org/wiki/NoSQL 啊。我在用关系数据库术语来考虑它。谢谢(你的)信息。在我前进的过程中有所作为。 当心 WWDC 2015 他们特别提到不要在查询中嵌套查询。所以不要为此使用便捷 API。【参考方案2】:您应该查看 Apple 的 CloudCaptions 示例代码。它们为每个 CKRecord
类型创建包装器,并提供方便的方法来加载关系。
希望 Apple 今年能增加更好的搜索功能!
【讨论】:
以上是关于查询具有多种记录类型的 CloudKit 数据库的主要内容,如果未能解决你的问题,请参考以下文章