在 iOS 中查询 CloudKit 的数据范围
Querying a range of data with CloudKit in iOS
我是 CloudKit 和 swift 的新手。我有一个查询可以成功提取我的所有记录并按 creationDate(如下)对它们进行排序。但是,我希望能够通过 creationDate 提取前 10 条记录。然后有一个按钮来加载下一个 10 等等。我一直在做一些搜索,但一无所获。任何帮助将不胜感激!
stream = [CKRecord]()
let publicData = CKContainer.default().publicCloudDatabase
let query = CKQuery(recordType: "myRecords", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
publicData.perform(query, inZoneWith: nil) { (results:[CKRecord]?, error:Error?) -> Void in
if let stream = results {
self.stream = stream
DispatchQueue.global(qos: .background).async {
DispatchQueue.main.async {
for record in stream {
// Do stuff here
}
}
}
}
}
}
CKQuery
有 属性 resultsLimit
.
您可以指定要返回的记录数。
编辑:
我是 CloudKit 和 swift 的新手。我有一个查询可以成功提取我的所有记录并按 creationDate(如下)对它们进行排序。但是,我希望能够通过 creationDate 提取前 10 条记录。然后有一个按钮来加载下一个 10 等等。我一直在做一些搜索,但一无所获。任何帮助将不胜感激!
stream = [CKRecord]()
let publicData = CKContainer.default().publicCloudDatabase
let query = CKQuery(recordType: "myRecords", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
publicData.perform(query, inZoneWith: nil) { (results:[CKRecord]?, error:Error?) -> Void in
if let stream = results {
self.stream = stream
DispatchQueue.global(qos: .background).async {
DispatchQueue.main.async {
for record in stream {
// Do stuff here
}
}
}
}
}
}
CKQuery
有 属性 resultsLimit
.
您可以指定要返回的记录数。
编辑: