加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – CloudKit计数记录

发布时间:2020-12-14 05:35:40 所属栏目:百科 来源:网络整理
导读:我有一个“表”可能有许多记录,当添加一个新记录时,我需要知道当前表中已经有多少条记录,因为我在计算某些值时使用它.我找到的最接近的事情是请求所有这样的条目: var query : CKQuery = CKQuery(recordType: "Stars",predicate: NSPredicate(format: "mass
我有一个“表”可能有许多记录,当添加一个新记录时,我需要知道当前表中已经有多少条记录,因为我在计算某些值时使用它.我找到的最接近的事情是请求所有这样的条目:
var query : CKQuery = CKQuery(recordType: "Stars",predicate: NSPredicate(format: "mass > 0"))
    var request : CKQueryOperation = CKQueryOperation(query: query)
    var starCount = 0

    request.queryCompletionBlock = {
        (cursor:CKQueryCursor!,error:NSError!) in
        if error {
            completionHandler(ECOResponse.error(error.description),starCount)
        } else {
            completionHandler(ECOResponse.ok(),starCount)
        }
    }

    request.recordFetchedBlock = {
        (record:CKRecord!) in
        starCount += 1
    }

我希望queryCompletionBlock给出一个计数或结果数组以及CKQueryCursor,但不幸的是它没有.

有没有办法计算表中的行数?

不,不可能获得符合您的查询的记录总数.也可以列举结果,答案可能是错误的. CloudKit返回的记录数并不固定. CloudKit有一个机制来决定要返回多少条记录.可以在CKQueryOperation对象上将其设置为固定数字.默认值为:
operation.resultsLimit = CKQueryOperationMaximumResults;

该物业的文件说:

When using that value,the server chooses a limit that aims to provide an optimal number of results that returns as many records as possible while minimizing delays in receiving those records. However,if you know that you want to process a fixed number of results,change the value of this property accordingly.

如果您的计数与此固定数量相同,那么可能比您的查询返回的记录多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读