获取特定类型的所有 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的主要内容,如果未能解决你的问题,请参考以下文章