跳过 CKQueryCursor 的数量 cloudkit
skip number of CKQueryCursor cloudkit
如何从 cloudKit 跳过来自 ckqueryCursor 的批处理结果数,我想显示更多单元格取决于我 table
中现有单元格的数量
我做了类似的事情来知道有多少条记录和多少批次,但我不知道如何告诉 cloudkit,显示第二批次而不是重新加载所有内容...
Parse 有 Skip ... 那么 cloudkit 呢?
let container = CKContainer.defaultContainer()
let database = container.publicCloudDatabase
//count number or records on my database
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Products", predicate: predicate)
query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
database.performQuery(query, inZoneWithID: nil, completionHandler: {
(results, error) -> Void in
if error != nil {
return
} else {
let limit = 10
let APIrequests: Int = ((Int((results?.count)!) + limit - 1)) / limit
print("\(APIrequests)") // number of requests we need
print(results?.count)
}
})
CloudKit 不会像您预期的那样在 CKQuery
中处理此逻辑(就像 PFQuery
那样)。
CloudKit 使用 CKQueryCursor
class 处理分页。 您必须直接使用实例化 CKQueryOperation
才能使用 queryCursors。
当您执行 CKQueryOperation
时,在 queryCompletionBlock
中您必须 save/cache queryCursor。
当您想要另一页数据时,使用 initWithCursor
创建另一个 CKQueryOperation
并传递您从上次查询中保存的缓存 queryCursor。
如何从 cloudKit 跳过来自 ckqueryCursor 的批处理结果数,我想显示更多单元格取决于我 table
中现有单元格的数量我做了类似的事情来知道有多少条记录和多少批次,但我不知道如何告诉 cloudkit,显示第二批次而不是重新加载所有内容...
Parse 有 Skip ... 那么 cloudkit 呢?
let container = CKContainer.defaultContainer()
let database = container.publicCloudDatabase
//count number or records on my database
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Products", predicate: predicate)
query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
database.performQuery(query, inZoneWithID: nil, completionHandler: {
(results, error) -> Void in
if error != nil {
return
} else {
let limit = 10
let APIrequests: Int = ((Int((results?.count)!) + limit - 1)) / limit
print("\(APIrequests)") // number of requests we need
print(results?.count)
}
})
CloudKit 不会像您预期的那样在 CKQuery
中处理此逻辑(就像 PFQuery
那样)。
CloudKit 使用 CKQueryCursor
class 处理分页。 您必须直接使用实例化 CKQueryOperation
才能使用 queryCursors。
当您执行 CKQueryOperation
时,在 queryCompletionBlock
中您必须 save/cache queryCursor。
当您想要另一页数据时,使用 initWithCursor
创建另一个 CKQueryOperation
并传递您从上次查询中保存的缓存 queryCursor。