ios - 跳过 CKQueryCursor cloudkit 的数量

标签 ios uitableview uicollectionview cloudkit

如何跳过来自 cloudKit 的 ckqueryCursor 的批处理结果数量,我想显示更多单元格取决于我表中现有单元格的数量

我做了类似的事情来知道有多少条记录和多少批处理,但我不知道如何告诉 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 类处理分页。 您必须直接使用实例化 CKQueryOperation 才能使用 queryCursors。

当您执行 CKQueryOperation 时,您必须在 queryCompletionBlock 中保存/缓存 queryCursor。

当您想要另一页数据时,使用 initWithCursor 创建另一个 CKQueryOperation 并传递您从上次查询中保存的缓存 queryCursor。

关于ios - 跳过 CKQueryCursor cloudkit 的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35386571/

相关文章:

ios - 如何从 UITableView 中删除空单元格?

ios - 使用自动布局将 float View 置于第二行

ios - 滚动 UICollectionView 时加载重复数据

ios - iOS 中的 Google 自动完成 API 集成

iphone - 顶部带有圆角的 UIButton

ios - swift Sqlite3_column_text()

ios - insertRowsAtIndexPaths 的断言失败

ios - 如何知道 UITableView 已完成 swift 中的数据加载

ios - UICollectionView : Don't reload supplementary views

iOS 重复实现 --> 测试失败