Ios 跳过CKQueryCursor cloudkit的编号

Ios 跳过CKQueryCursor cloudkit的编号,ios,uitableview,uicollectionview,cloudkit,Ios,Uitableview,Uicollectionview,Cloudkit,如何跳过来自ckqueryCursor或cloudKit的批处理结果的数量,我希望根据表中现有单元格的数量显示更多单元格 我这样做是为了知道有多少记录和多少批,但我不知道如何告诉cloudkit,显示第二批而不是重新加载所有内容 我已经跳过了。。。那么cloudkit呢 let container=CKContainer.defaultContainer() 让database=container.publicCloudDatabase //在我的数据库中统计一个或多个记录 let谓词=NSP

如何跳过来自ckqueryCursor或cloudKit的批处理结果的数量,我希望根据表中现有单元格的数量显示更多单元格

我这样做是为了知道有多少记录和多少批,但我不知道如何告诉cloudkit,显示第二批而不是重新加载所有内容

我已经跳过了。。。那么cloudkit呢

let container=CKContainer.defaultContainer()
让database=container.publicCloudDatabase
//在我的数据库中统计一个或多个记录
let谓词=NSPredicate(值:true)
let query=CKQuery(记录类型:“产品”,谓词:谓词)
query.sortDescriptors=[NSSortDescriptor(键:“creationDate”,升序:false)]
database.performQuery(查询,inZoneWithID:nil,completionHandler:{
(结果,错误)->在中无效
如果错误!=nil{
返回
}否则{
设极限=10
让API请求:Int=((Int((results?.count)!)+limit-1))/limit
print(“\(APIRests)”)//我们需要的请求数
打印(结果?.count)
}

})
CloudKit不会像您预期的那样在
CKQuery
中处理此逻辑(就像
PFQuery
一样)

CloudKit使用
CKQueryCursor
类处理分页必须直接使用实例化
CKQueryOperation
才能使用queryCursors。

执行
ckquery操作时
,必须在
queryCompletionBlock
中保存/缓存queryCursor


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

感谢您的回答,我已经用CKQueryCursor和CKQueryOperation完成了您回答的第一部分,但是为了保存和缓存查询光标,这对我来说是新的,我如何做到这一点,我只想在向下滚动时显示更多的单元格,因为现在我会带上我所有的记录,但我不想这样:如果你想在ViewController上创建一个名为“queryCursor”的属性,或者任何允许你在下一次查询中使用该光标的地方。在queryCompletionBlock中,使用此光标设置属性。当用户滚动到表的底部时,使用initWithCursor创建一个新查询,然后继续重复此过程。但是,当我想显示更多单元格时,光标如何知道我想显示记录编号11到20?(因为我在第一批中的限制是10)如果您的CKQuery限制为10,那么queryCursor将足够智能,可以为您提供接下来的10条记录。还要注意的是,如果queryCursor为nil,那么就没有更多的数据(数据集的末尾)。你能检查一下我在这里做的吗?