获取特定类型的所有 CKRecords

Posted

技术标签:

【中文标题】获取特定类型的所有 CKRecords【英文标题】:Fetch All CKRecords of certain type 【发布时间】:2014-07-27 18:22:04 【问题描述】:

假设我在私有 CloudKit 数据库中有 A 类型的记录。如何在不指定记录 ID 或查询谓词的情况下获取该类型的 ALL 记录?

【问题讨论】:

【参考方案1】:

CKQuery 在初始化时需要一个非零谓词 (see documentation),因此您必须指定一个谓词,即使它始终为真。例如:

let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "TheRecordType", predicate: predicate)

let operation = CKQueryOperation(query: query)
operation.queryCompletionBlock = cursor, error in
    // done


CKContainer.defaultContainer().privateCloudDatabase.addOperation(operation)

【讨论】:

谢谢,这实际上是我接下来要尝试的事情,因为似乎没有其他方法可以正确地做到这一点。不过这似乎有点奇怪,所以我认为应该有更好的方法来做到这一点。 @ErikAigner 我最初的想法也是如此,但如果这是它的设计工作方式,应该不会有任何问题。请注意,如果您在创建订阅时使用这样的谓词,则在服务器上,它会在订阅的条件字段中映射为“空白”。

以上是关于获取特定类型的所有 CKRecords的主要内容,如果未能解决你的问题,请参考以下文章

获取页面上特定类型的所有 Web 控件

sql 获取特定文档类型的所有项目的所有属性值

sql 获取特定文档类型的所有项目的所有属性值

Spring:获取特定接口和类型的所有 Bean

从打字稿中的对象获取特定类型的所有键[重复]

如何获取特定类型(按钮/文本框)的Windows窗体表单的所有子控件?