跳过 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。